gpt4 book ai didi

wpf - 在 View 模型中包含 WPF 细节的优缺点

转载 作者:行者123 更新时间:2023-12-04 11:15:27 25 4
gpt4 key购买 nike

我无法决定如何看待这段代码:

public SolidColorBrush Brush
{
get { return IsValid ? _validItemBrush : _invalidItemBrush; }
}

它是我当前项目中 View 模型的一部分,您可以想象, Brush将绑定(bind)到 UI 中的某些文本元素,以在一个相当简单和直接的对话框中指示其他数据的(无效)有效性。

这段代码的支持者说,由于我们使用的是 WPF,我们不妨在 View 模型中允许一些简单的 WPF 特定构造。

反对者说这违反了关注点分离,因为它明确规定了应该由 View 单独处理的样式。

请分享您的论点,如果您对上面的代码不满意,请分享您对替代解决方案的想法。 (我对你所说的关于使用 DataTemplate s 的内容特别感兴趣)。

是否有可能存在一种可以被视为最佳实践的解决方案?

最佳答案

就个人而言,我会在 XAML 中定义两个画笔,并让使用它们的控件根据 IsValid 属性切换画笔(在 xaml 中)。这可以使用 DataTriggers 或什至单个 IValueConverter 轻松完成 - 转换器可以使用 2 个画笔和一个 bool 值,并且可以很容易地在它们之间进行交换。

这使业务逻辑呈现中立——“画笔”非常特定于特定的呈现形式,以及纯粹的 View 选择。将其硬编码到 ViewModel 中违反了单一职责原则,也不是一个清晰的关注点分离。

我非常愿意将其保留在 View 中,并根据 IsValid 进行切换特定于 ViewModel 的(绑定(bind))属性。

关于wpf - 在 View 模型中包含 WPF 细节的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4869516/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com