繁体   English   中英

WPF MVVM,我应该在哪里放置视图特定的属性?

[英]WPF MVVM, where should I put view specific properties?

我已经有一段时间了。 假设我有一个用WPF制作的简单应用,画布内有单个矩形。 我可以在mousemove上使用Canvas.Left和Canvas.Top移动此矩形。 但是,假设我还想根据一些计算来更改此矩形的颜色,并更改其宽度和高度。 我可以通过绑定视图模型中的依赖项属性来实现。 但是,随着项目的进展,我的视图模型变得越来越大。 我希望将其某些逻辑封装在单独的对象中。 因此,我为我的Rectangle创建了一个类,其中包含诸如background,posX,posY,width和height之类的属性。

问题是,所有这些属性都是特定于视图的。 换句话说,该对象不属于应用程序的业务逻辑(如果我很好地理解了这些概念,那么我仍在学习中)。 所以问题是,我应该在哪里包含该对象的类? 在MVVM的模型或辅助层中。

感谢您的回答。

视图模型公开了视图绑定的属性,例如您的背景,posX,posY,width和height属性。 这就是视图模型的用途。 实际的业务逻辑与表示无关,属于模型。

因此,您的“特定于视图”的属性当然属于视图模型类。 这些属性通常不是依赖项属性,而仅仅是CLR属性,但这只是一个故事:

ViewModel中的INotifyPropertyChanged与DependencyProperty

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM