如何在 MVVM 中正确安排 GUI 和模型之间的通知机制?



我在MVVM项目中遇到了以下问题。我有ViewModel对象,当他从GUI更新属性时,该对象具有事件通知模型。

这是正常工作的,但在此之后,我需要以编程方式更新模型中的属性并相应地刷新 GUI。 因此,我在模型中为VIewModel通知添加了事件属性,并获得了挂起的应用程序。因为我得到了下一个循环:模型 ->视图模型 -> GUI -> 视图模型 ->模型..等。

我可以使用以下方法来解决:

1( 在模型中创建两种不同的方法:从 GUI 更新属性和更新编程。

2(在模型中执行验证(通过反射(-哪个对象调用该方法,稍后要做通知或不通知。

我在主题中的问题..谢谢!

最简单的方法,也是我在这些情况下最常看到的,是只在属性值实际更改时才引发事件(INotifyPropertyChanged(,即将新值与当前值进行比较。

我也有兴趣知道你使用什么框架 - 听起来你正在手动做很多事情,这些事情通常由MVVM框架处理,所以你不需要担心这样的小细节?

最新更新