1

我想我有点困惑是否应该将显示范围等属性放置在模型中(作为数据上下文继承,以便子控件可以轻松绑定到它)或者我是否应该将属性放置在 graphviewer 类中,然后让需要访问它的组件拥有自己的属性,然后将这些属性绑定到祖先。绑定到祖先控件或仅绑定模型是否更清洁?我觉得后者更干净,但显示范围很明显是视图的属性。

例如。我有一个滚动查看器中需要的属性 AxisdivisionUnit,以及一些拇指用来重新计算图形更新位置的属性。滚动查看器仅在顶级控件(图形查看器)中的树视图被填充时出现。所以我可以将属性axisdivisionunit放在graphviewer上并将属性绑定到scrollviewer和thumb中的属性。或者我可以让 thumb 和 scrollviewer 绑定到模型中的属性(如果我更擅长将 UI 完全分离出来,则为 viewmodel。

4

1 回答 1

3

让我看看能不能帮上忙。。

首先,由于您主要讨论的是 UI 上事物的外观,所以我认为该属性根本不应该在您的模型中。真正的问题是它是否属于您的 View 或 ViewModel。

AxisDivisionUnit,听起来它只是图形外观的一部分。我认为仅将其放在视图中会更有意义。如果您有一些属性描述了与业务逻辑相关的图形限制,那么在 ViewModel 中可能会更好,因为您可能想要测试该代码,并且如果您要替换 UI,您仍然需要想要强制执行那些完全相同的限制。

我想问问自己,“如果我用完全不同的图表和 UI 替换这个图表来显示相同​​的数据,我是否必须强制执行相同的逻辑?” 如果答案是否定的,这正是您希望在这种情况下显示它的方式......那么它属于视图,您可以将控件的属性绑定到另一个控件的属性或使用触发器、行为等来实现它在视图中。

于 2013-09-06T20:06:03.893 回答