将视图中的操作与ViewModel

时间:2016-06-07 18:35:24

标签: c# wpf model-view-controller mvvm view

是否有任何方法可以知道ViewModel属性何时作为View中更改的直接结果进行更新,而不是直接更新ViewModel属性(例如从Controller或有权访问ViewModel的任何其他人)?

例如,我有一个监控站应用程序。

  • 我使用SignalR从Controller中侦听网络通知,并且通知会触发View的ViewModel更新。 (非常基本)
  • 我还使用PropertyChanged通知程序注册回调,因为在设置特定的ViewModel属性时,必须在本地重新计算更高级别的计算。 (再次,Textbookishly Basic)

但是,我还希望能够手动更新View(而不仅仅是更新ViewModel的外部通知内容)以使应用程序双向运行。我希望我对View做出的更改也能够更新ViewModel属性并通过Controller发送更改值的SignalR通知。

我的问题是,从Controller中我必须知道属性更新的唯一方法是通过PropertyChanged通知。但是,当Controller通过ViewModel直接设置属性时,也会触发PropertyChanged通知。我需要知道View何时更改ViewModel属性,而不是通过Controller(或View以外的任何人)更改ViewModel属性时。否则,每次ViewModel被View以外的其他东西更新时,我的Controller都会发出通知,而我只希望我的Controller在通过View对属性进行更新时做出反应。

是否有构造或设计模式允许我确定(没有Controller拥有的ViewModel副本并与View拥有的ViewModel进行比较)?

0 个答案:

没有答案