我对这段代码的想法有些犹豫:
public SolidColorBrush Brush
{
get { return IsValid ? _validItemBrush : _invalidItemBrush; }
}
这是我目前项目中视图模型的一部分,可以想象,
Brush
将绑定到UI中的一些文本元素,以指示其他数据片段的(无)效性,在一个相当简单和直截了当的对话框中。支持这段代码的人认为,既然我们正在使用WPF,那么我们可以在视图模型中允许一些简单的WPF特定结构。
反对者认为,这违反了“关注点分离”原则,因为它明确地定义了应该由视图独自处理的样式问题。
请分享您的观点,如果您对上面的代码不满意,请分享您有关替代解决方案的想法。(我特别想知道您对使用
DataTemplate
的看法。)是否存在可以被视为最佳实践的解决方案?
DataTemplate
并不是处理画刷更改的适当方式。它们真正的作用是确定如何显示自定义类型。例如,它们可以用于将自定义类映射到设计为适当显示该类信息的视图。 - Reed Copsey