【发布时间】:2018-02-02 16:15:48
【问题描述】:
这件事一直在我脑海中浮现。假设我有一个用 WPF 制作的简单应用程序,画布内有一个矩形。我可以在 mousemove 上使用 Canvas.Left 和 Canvas.Top 移动这个矩形。但是假设我也想根据一些计算改变这个矩形的颜色并改变它的宽度和高度。我可以通过从我的视图模型绑定依赖属性来做到这一点。然而,随着我的项目进展,我的视图模型变得越来越大。我很想将它的一些逻辑封装在分离的对象中。所以我为我的 Rectangle 创建了一个类,包含背景、posX、posY、宽度和高度等属性。
问题是,所有这些属性都是特定于视图的。换句话说,这个对象不属于应用的商业逻辑(如果我理解这些概念,我还在学习)。所以问题是,我应该在哪里包含这个对象的类?在模型或 MVVM 的辅助层中。
感谢您的回答。
【问题讨论】:
-
你应该有模型
Rectangle与 posX, posY, color。在 Vm 中,您可以通过绑定到视图来实现模型。如果您的视图模型变得太大,您可以重构更常见的元素,例如我们CalculatePositionOffset可以在其他类中,如果它也可以计算其他事物的 pos 偏移量。有时虚拟机很大,就是这样。