c# - MVVM 和更新属性

标签 c# mvvm

如果这个问题是基本的,我仍然试图了解 MVVM,所以很抱歉。

我的程序在屏幕上显示一些文本,但取决于另一个属性的状态将取决于文本的颜色。

在我看来,我可以通过两种方式做到这一点。

  • 当 Status 属性改变时,颜色会在 setter 中改变。 EG(伪代码)
    private LogDetails.LogStatus? logStatus;
    public LogDetails.LogStatus? LogStatus {
        get { return logStatus; }
        set { 
               Color color = //logic to work out the color
               Color = color; 
            }
    }         
    
  • 我认为这可以通过 OnPropertyChanged (我可以自己研究)来完成。

  • 我的问题是,因为我有 2 个选项来完成我的简单任务,在某些情况下一个比另一个更好,一个更贬值/旧还是我被迫使用选项 2 只是为了安抚 MVVM 模式?

    我假设如果我最终需要 2 路绑定(bind)(例如,我可以从 GUI 更新状态),那么 MVVM 会更好,但就目前而言,有人有什么想法吗?

    最佳答案

    您应该简单地编写一个自定义 IValueConverter 这需要LogStatus并将其转换为颜色。绑定(bind)Text直接到LogStatus并绑定(bind)Color控制到LogStatus使用转换器。

    代码非常简单(只需实现一种方法,将转换器添加为 XAML 资源并在绑定(bind)中引用它),但您可以看到类似的示例 here .

    关于c# - MVVM 和更新属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14460895/

    相关文章:

    c# - 读取 JSON 字符串作为键值

    wpf - 如何在 XAML 中运行时动态更改 PATH DATA 属性?

    wpf - 将 ContentControl 绑定(bind)到 WPF 中的深层路径

    mvvm - 剑道按钮提示

    Silverlight 如何将选定的数据网格行传递给 View 模型

    c# - 根据枚举值从 IoC 容器解析

    c# - 如何修复 ASP .NET BoundField (DataFormatString) 中的日期格式?

    c# - WPF 显示每个图像 x 秒如何?

    c# - 处理不同应用程序域中的严重异常

    c# - WPF MVVM : How to close a window