如何在WPF中组织模型/视图/ ViewModel

sir*_*lot 11 c# wpf mvvm

这一直是我的一个刺激,所以我想我会寻求建议.如何在WPF(解决方案资源管理器)中组织模型/视图/ ViewModel?我似乎永远无法找到一个我满意的解决方案,所以我想知道是否有人在那里.

Fed*_*gui 14

除了你的模型应该在他们自己的程序集(项目)中.我倾向于将相关视图和ViewModel放在一个文件夹中,而不是有一个名为"Views"的文件夹和另一个名为"ViewModels"的文件夹.

比方说,例如:

Project MyApp.Model
    |---> Models


Project MyApp.Client
    |--> Orders
    |      |--> OrderCRUDView
    |      |--> OrderCRUDViewModel
    |      |--> OrderListView
    |      |--> OrderListViewModel
    |--> Accounts
           |--> AccountCRUDView
           |--> AccountCRUDViewModel
           |--> AccountListView
           |--> AccountListViewModel
    ...etc
Run Code Online (Sandbox Code Playgroud)


Ree*_*sey 13

如何在WPF(解决方案资源管理器)中组织模型/视图/ ViewModel?

我通常将模型放在一个单独的项目中.MVVM的主要目标之一是使模型完全与View和ViewModel隔离.

View和ViewModel取决于 - 我的个人组织风格因项目范围而异.

对于非常小的项目,我经常为每个"视图"并排显示View和ViewModel.

对于较大的项目,我会将它们分成它们自己的命名空间(和文件夹),甚至分成单独的项目.将ViewModel放在与View不同的项目中是很好的,因为它可以强制您的ViewModel不引用View元素,因为您可以完全保留所需的引用.

  • @denismorozov或者将它们分开,并在发布后使​​用ILmerge/etc进行整合:http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx (3认同)
  • 同意/使用相同的风格,只有我希望添加的评论是当项目数量开始增长时 - 它开始对应用程序启动时间造成影响,因为每个dll都必须加载.我只是重构了我正在处理的应用程序,它有12个dll,仅用于UI层到3并使用了逻辑子文件夹结构. (2认同)