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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.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 ViewModel属于哪个部件?_Wpf_Mvvm - Fatal编程技术网

Wpf ViewModel属于哪个部件?

Wpf ViewModel属于哪个部件?,wpf,mvvm,Wpf,Mvvm,我只是在学习WPF应用程序中MVVM模式的诀窍,我可以想象这听起来像是一个极其愚蠢的问题,但不管怎样,还是这样: 我已经在一个程序集中有了一个模型,它是一个简单的类库。在另一个程序集中,我用xaml创建了一个简单的视图。现在所有的书都告诉我们同样的道理:用一个视图模型将它们链接在一起。我的问题是,这个viewmodel属于哪里: 它或多或少是视图的一部分,是否应该位于该部件中 viewmodel是否具有通用性,因此它与模型部件一起属于 viewmodel是否有自己的部件 我知道MVVM模式只

我只是在学习WPF应用程序中MVVM模式的诀窍,我可以想象这听起来像是一个极其愚蠢的问题,但不管怎样,还是这样:

我已经在一个程序集中有了一个模型,它是一个简单的类库。在另一个程序集中,我用xaml创建了一个简单的视图。现在所有的书都告诉我们同样的道理:用一个视图模型将它们链接在一起。我的问题是,这个viewmodel属于哪里:

  • 它或多或少是视图的一部分,是否应该位于该部件中
  • viewmodel是否具有通用性,因此它与模型部件一起属于
  • viewmodel是否有自己的部件
我知道MVVM模式只是一个设计指南,而不是一套严格的规则,但我觉得最好以正确的方式学习

编辑


后续问题:viewmodel是否意味着可重用?我可以想象一个场景,如果您可以为WPF桌面应用程序和silverlight web应用程序使用相同的viewmodel,那么它将非常有用。

根据项目的大小,我将viewmodel与视图放在同一个程序集中,或者放在它们自己的程序集中,但决不放在模型程序集中。模型不应包含任何与UI相关的内容。

根据项目的大小,我将ViewModels与视图放在同一个部件中,或者放在它们自己的部件中,但决不放在模型部件中。模型不应包含任何与UI相关的内容。

它有助于构建视图,因此它属于视图部件


可以这样想:您是否可以将您的模型程序集用于不同风格的应用程序,例如Windows服务或web应用程序?在该程序集中是否存在与该应用程序样式无关的内容?如果答案是“是”和“否”,则表示您已经构建了一个有用的可重用组件,该组件独立于用户界面的类型。

它有助于构建视图,因此它属于视图部件


可以这样想:您是否可以将您的模型程序集用于不同风格的应用程序,例如Windows服务或web应用程序?在该程序集中是否存在与该应用程序样式无关的内容?如果答案是“是”和“否”,那么您已经为自己构建了一个有用的可重用组件,它独立于用户界面的类型。

您能告诉我这种思维方式如何适应我的后续问题吗?ViewModels往往与所讨论的UI紧密相连。您可能希望将它们重新用于Silverlight应用程序,但除此之外,它们肯定有点无用。虽然将模型放在不同的程序集中可以很好地分离关注点,但我想说,视图模型是同一关注点(UI)的一部分,除非你需要,否则将它们放在自己的组件中可能会有些过分。你能告诉我这种思维方式如何适合我的后续问题吗?视图模型往往与所讨论的UI紧密相连。您可能希望将它们重新用于Silverlight应用程序,但除此之外,它们肯定有点无用。虽然将模型放在不同的程序集中可以很好地分离关注点,但我要说的是,视图模型是同一关注点(UI)的一部分,除非您需要,否则将它们放在自己的组件中可能会有些过分。