视图模型如何收到有关数据项属性更改的通知?



ViewModel可以通过引发属性更改事件来通知View属性更改。如果基础数据(例如,一个不实现IPropertyChange的Plain类)发生了更改,ViewModel如何得到通知?

如果基础数据(例如,一个不实现IPropertyChange的Plain类)发生了更改,ViewModel如何得到通知?

它不能,必须有一个机制来进行通知。最可能的原因是在应用程序的一个区域(或模块)中使用的POCO也在另一个区域中使用,即松散耦合的主细节情况。如果你像这样"共享"POCO的同一个实例,那么你不太可能没有在其中实现更改通知。如果你已经实现了更改通知,那么应用程序的一个模块中的更改将自动对另一个模块可见(它们都在查看同一个对象),并且任何监视该更改通知的东西(如绑定子系统)都将执行其任务并获取更改。

如果你有两个相同数据的独立实例,其中一个被更新,另一个将不知道它。当你的VM通过模型请求数据,而模型从断开连接的数据源(如数据库或web服务)检索数据时,也会发生这种情况。您不知道底层数据何时发生了更改,再次需要实现一个更改通知系统。你也可以采取另一种方法——让用户更改数据,然后在保存用户的更改之前对数据进行新的抓取,如果在用户工作时基础数据发生了更改,那么你可以通知用户并采取适当的操作(或者让用户选择适当的操作)。

这能回答你的问题吗?或者你想详细说明你想知道什么?

最新更新