2

我正在开发一个遵循 MVVM 模式的小型数据库应用程序。为了修改数据库,我使用对话框(视图),然后调用在视图的视图模型中定义的命令。但是我如何告诉视图这个命令的成功/结果呢?

一个简单的例子:用户想要删除一行,但仍有剩余的关系,所以该行不能被删除。在我对 MVVM 的看法和理解中,通知失败是视图的工作,而通知用户问题的工作也是视图的工作。我认为在操作失败后直接从视图模型创建这个特殊视图是错误的。我考虑了解决这个问题的事件(比如我用于视图模型通信的中介模式)。但是这些事件也应该允许传递参数。在这个例子中,参数应该是一个包含所有剩余关系的字符串,这样用户也能理解操作失败的原因。

有人建议解决这个问题吗?非常感谢您的帮助!

4

2 回答 2

0

在您的情况下,该行应该在绑定的集合中。视图应该简单地向视图模型发送一个命令,上面写着“删除这一行”,它的兴趣应该停在那里。viewmodel 应该负责实际删除行并将其从集合中删除。

于 2012-09-03T17:40:04.867 回答
0

选项 1.ObservableCollection在视图模型类中使用错误集合 ( )。将视图中的任何项目控件绑定到此集合。当命令出错时,将错误添加到错误集合中。

选项 2。当命令出错时,向用户显示带有错误消息的消息框。要关注 MVVM,请通过服务显示它或向任何类似中介的类型发布消息。

这两个选项(在集合中添加新错误或消息框)都必须在视图模型中实现,而不是在视图中。

于 2012-09-03T17:41:01.950 回答