【发布时间】:2010-01-22 15:38:14
【问题描述】:
在用户界面中,编辑某些实体时通常需要实现取消按钮。在 WPF 中,如果您可以使您的视图模型具有事务性,那就太好了。我将尝试更详细地解释我的意思:
视图模型连接到模型并以更易于视图处理的方式公开数据(利用数据绑定)。对视图模型的更改会导致模型的更改。但是,如果有一个取消按钮,您通常不希望立即在模型上执行更改,所以我想到了某种缓冲更改。当您提交更改时,它们会被转移到模型中,否则它们会被删除。
现在我已经实现了一个解决方案,它创建了一个视图模型的代理,该代理绑定到视图而不是真实的视图模型。代理不连接到模型,但使用拦截器记录对属性和方法调用的更改。有一个提交方法将调用应用于真实视图模型。我认为这是一个很好的解决方案,但仍然有很多问题(如果视图模型包含集合等)。
我正在寻找一个可以做这种事情的框架。有吗?
最好的问候,
奥利弗·哈纳皮
【问题讨论】:
标签: .net wpf mvvm transactions