【发布时间】:2011-02-02 00:20:50
【问题描述】:
我无法决定如何看待这段代码:
public SolidColorBrush Brush
{
get { return IsValid ? _validItemBrush : _invalidItemBrush; }
}
它是我当前项目中视图模型的一部分,您可以想象,Brush 将绑定到 UI 中的一些文本元素,以指示其他数据的(无效)有效性,在否则相当简单直接的对话。
这段代码的支持者说,既然我们使用的是 WPF,我们不妨在视图模型中允许一些简单的 WPF 特定结构。
反对者说这违反了关注点分离,因为它明确规定了应该由视图单独处理的样式。
请分享您的论点,如果您对上面的代码不满意,请分享您对替代解决方案的想法。 (我对你对使用DataTemplates 的看法特别感兴趣)。
是否有一种解决方案可以被视为最佳实践?
【问题讨论】:
-
这和
DataTemplates有什么关系? -
@Reed Copsey:我的印象是使用映射到特定
DataTypes 的DataTemplates 是解决问题的一种替代方法。我想知道它是否被使用,或者被认为太“重量级”。 -
使用
DataTemplate并不是处理笔刷更换的合适方式。它们实际上是用于确定如何显示自定义类型。例如,它们可用于将自定义类映射到旨在适当显示该类信息的视图。