【发布时间】:2009-05-28 11:42:31
【问题描述】:
我了解在 MVVM 模式中,ViewModel 应该对 View 一无所知。
因此,ViewModel 似乎有两种方式可以在 UI 上导致特定的事情发生,请考虑以下常见的事件流:
- 用户在文本框中输入内容
- 用户点击按钮
- 按钮在视图模型上调用名为“保存”的 DelegateCommand
- 视图模型保存文本框中的文本
- 如果保存期间一切顺利,视图模型会将其名为 SaveStatus 的 INotifyPropertyChanged 属性更改为“成功”
现在在视图中,我有两种方法可以让这种更改对 UI 产生影响:
- 在视图中可能有一个文本块,上面有一个 Converter,它将 SaveStatus 的文本转换为诸如“保存成功”之类的短语。李>
- 在 View 中可能有一个 Trigger 检查是否 SaveStatus = "Succeeded",如果是,则一系列 Setter 会适当地更改 UI(隐藏元素、更改文本、更改颜色等)
这是您在应用程序中使用的从 ModelView 到 View 的基本信息流吗?
【问题讨论】: