【发布时间】:2019-06-24 08:44:55
【问题描述】:
我对 WPF 和 MVVM 比较陌生,我正在尝试了解当命令在多个视图模型中具有依赖关系时如何正确使用它们。
几个例子:
- 在我当前的应用程序中,我有一个 RelayCommand,它会导致在几个不同的视图模型中发生保存操作(它们编写了几个不同的文件)。目前我正在使用 mvvmlight messenger 向这些视图模型发送消息以让他们进行保存,我认为这是正确的方法,因为它避免了提供某种委托或事件到/on那些视图模型。
- 我在一个视图模型中有一个 RelayCommand,它有一个 CanExecute 方法,该方法依赖于其他 2 个视图模型的状态。我目前也通过 mvvmlight messenger 处理了这个问题,通过更改视图模型 CanExecute 方法取决于消息,即它们的状态现在对操作有效。这看起来很混乱,但我能想到的唯一选择是使用委托或事件有效地将视图模型编织在一起,我认为我应该避免这样做。
是否有一些普遍接受的方法来处理我缺少的这个问题?
【问题讨论】:
标签: wpf mvvm mvvm-light relaycommand routed-commands