我理解在MVVM模式中, ViewModel应该对View 一无所知。
因此,似乎两种方式,ViewModel可以导致某些特定内容在UI上发生,请考虑这种常见的事件流:
现在在视图中,我有两种方法可以允许此更改对用户界面产生影响:
这是您在应用程序中使用的从ModelView到View <的基本信息流吗?
答案 0 :(得分:1)
您还可以在viewmodel上创建自定义事件,并让视图订阅它们并做出相应的反应。您不应该经常这样做,但它比检查特定属性名称的每个INotifyPropertyChanged事件更有意义。
答案 1 :(得分:0)
我们正在使用模型视图控制器模式,所以它是这样的:
我认为你可以使用几乎相同的方法(唯一的区别是控制器和模型都是你的例子中的视图模型)
答案 2 :(得分:0)
这是您在应用程序中使用的从ModelView到View的基本信息流吗?
是。我们几乎只使用INotifyPropertyChanged来实现从ViewModel到视图的更改。在交互稍微复杂的地方,我们使用View连接的其他事件。
我们在EditableAdapter上有一个HasChanges布尔值,而不是SaveStatus消息属性,它包装我们的POCO并提供更改的提交/回滚,以及其他计算属性。然后我们可以将Views绑定到这个HasChanges,这样,例如,我们可以在末尾显示带有*的文档名称以显示它有更改,或者使用HasChanges来禁用/启用Save按钮。