Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net MVVM模型间验证_.net_Wpf_Mvvm_Mvvm Light - Fatal编程技术网

.net MVVM模型间验证

.net MVVM模型间验证,.net,wpf,mvvm,mvvm-light,.net,Wpf,Mvvm,Mvvm Light,我有三个模型和viewmodels,它们相互依赖进行验证。 此外,模型必须对彼此的变化作出反应。例如,如果修改了ModelA.Prop1,则必须从DB重新填充ModelB.Funds 如何在MVVM中实现此功能?如何解决此问题可能取决于您的设置 如果导致或检测到ViewModel中的更改,则可以从ViewModel中启动刷新。因为允许ViewModel了解模型,所以您可以在坚持MVVM模式的同时执行此操作。对于ViewModels之间的通信,例如ModelA的ViewModel和ModelB的V

我有三个模型和viewmodels,它们相互依赖进行验证。 此外,模型必须对彼此的变化作出反应。例如,如果修改了ModelA.Prop1,则必须从DB重新填充ModelB.Funds


如何在MVVM中实现此功能?

如何解决此问题可能取决于您的设置

如果导致或检测到ViewModel中的更改,则可以从ViewModel中启动刷新。因为允许ViewModel了解模型,所以您可以在坚持MVVM模式的同时执行此操作。对于ViewModels之间的通信,例如ModelA的ViewModel和ModelB的ViewModel之间的通信,可以使用消息传递系统,如MVVM light中的message broker

如果模型包装在存储库中,则可以让存储库负责同步模型。这样,您就可以尽可能长时间地延迟同步


我想补充一点,如果模型如此依赖,那么您可能会看到一个模型,而不是两个。先检查一下!如果您觉得有必要在两个模型之间设置大量的同步和依赖关系,那么很明显,您可能正在查看单个模型。不要混淆模型和类;一个模型可以有多个类。

如何解决这个问题可能取决于您的设置

如果导致或检测到ViewModel中的更改,则可以从ViewModel中启动刷新。因为允许ViewModel了解模型,所以您可以在坚持MVVM模式的同时执行此操作。对于ViewModels之间的通信,例如ModelA的ViewModel和ModelB的ViewModel之间的通信,可以使用消息传递系统,如MVVM light中的message broker

如果模型包装在存储库中,则可以让存储库负责同步模型。这样,您就可以尽可能长时间地延迟同步

我想补充一点,如果模型如此依赖,那么您可能会看到一个模型,而不是两个。先检查一下!如果您觉得有必要在两个模型之间设置大量的同步和依赖关系,那么很明显,您可能正在查看单个模型。不要混淆模型和类;一个模型可以有多个类