我是MVVM的新手,我正在开发一个应用程序。我有一个有很多属性的表单视图。大约50.我无法将这些分隔成用户控件,因为我打破了mvvm原则。
我无法将这些分成模型,因为它们包含逻辑。 PropertyChange,错误更改,这些不是poco类,而且这些不是模型。
如果我将60个属性保存在同一个视图模型中会不会很好?
我认为这是错的吗? 你会如何组织这些?
答案 0 :(得分:2)
我无法将这些分隔成用户控件,因为我会违反mvvm原则。
我不确定你的意思。基本上你会想要使用视图合成并将视图模型和视图分解为相应的部分。
视图是WPF UserControl
(或Window
),所以如果您使用MVVM然后使用UserControl
,那么从概念上讲它们被视为视图在模式中。
我还建议您使用use an MVVM framework if you're using the MVVM pattern和类似Caliburn.Micro之类的内容,使视图合成非常容易。
我也不建议为视图模型use INotifyPropertyChanged instead使用依赖项属性。
大多数MVVM框架提供了一个基本视图模型类型,其中包含一个基于lambda的方法来调用PropertyChanged
事件,从而有助于重构。
答案 1 :(得分:1)
请不要将PropertyChanged
用于60 Properties
。使用DependencyProperty
。
对于可用性条款,请使用Visual Studio中的propdp
快捷方式,然后按Tab
两次。
请参阅此链接: http://www.codeproject.com/Articles/62158/DependencyProperties-or-INotifyPropertyChanged