Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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/8/design-patterns/2.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
Wpf 在MVVM模式中,ViewModel应该引用哪些类型的对象?_Wpf_Design Patterns_Mvvm - Fatal编程技术网

Wpf 在MVVM模式中,ViewModel应该引用哪些类型的对象?

Wpf 在MVVM模式中,ViewModel应该引用哪些类型的对象?,wpf,design-patterns,mvvm,Wpf,Design Patterns,Mvvm,我见过不少MVVM的例子。我可以看到视图应该引用ViewModel。我最近看到了一个ViewModel引用视图的示例,我认为这是错误的,因为它会导致更紧密的耦合。鉴于ViewModel通常被描述为视图和模型之间的中介,ViewModel是否比facade到domain对象更重要?我希望我在这里正确地使用了术语“facade”。从技术上讲,视图模型应该引用模型,而不是视图。视图应该绑定到视图模型,视图模型应该公开方便的属性,以便使用模型中的数据进行绑定 显然,视图模型的复杂性取决于模型中的应用程序

我见过不少MVVM的例子。我可以看到视图应该引用ViewModel。我最近看到了一个ViewModel引用视图的示例,我认为这是错误的,因为它会导致更紧密的耦合。鉴于ViewModel通常被描述为视图和模型之间的中介,ViewModel是否比facade到domain对象更重要?我希望我在这里正确地使用了术语“facade”。

从技术上讲,视图模型应该引用模型,而不是视图。视图应该绑定到视图模型,视图模型应该公开方便的属性,以便使用模型中的数据进行绑定


显然,视图模型的复杂性取决于模型中的应用程序和数据。但将其视为“门面”并没有太大的危害(尽管在开发人员的行话中并不完全正确)。

从技术上讲,视图模型应该引用模型,而不是视图。视图应该绑定到视图模型,视图模型应该公开方便的属性,以便使用模型中的数据进行绑定


显然,视图模型的复杂性取决于模型中的应用程序和数据。但是把它看作一个“门面”并没有太大的危害(虽然在开发者的行话中并不完全正确)。

你的直觉是正确的;ViewModel不应引用该视图


请注意,这是一个“应该”。纯粹主义者说ViewModel甚至不应该引用WPF之类的东西,但我不同意。除此之外,ViewModel还可以帮助您分离关注点并提高代码的可读性。如果为了避免引用属于视图的内容而不得不跳转,这表明你可能做得过火了。

你的直觉是正确的;ViewModel不应引用该视图

请注意,这是一个“应该”。纯粹主义者说ViewModel甚至不应该引用WPF之类的东西,但我不同意。除此之外,ViewModel还可以帮助您分离关注点并提高代码的可读性。如果为了避免引用某个属于视图的内容而必须跳转,那么这表明您可能做得过火了