0

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

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

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

  1. 当 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; 
            }
    }         
    
  2. 我认为这可以通过 OnPropertyChanged (我可以自己研究)来完成。

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

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

4

1 回答 1

3

您应该简单地编写一个自定义IValueConverter并将其LogStatus转换为颜色。使用转换器将控件的Text直接绑定LogStatus和绑定到使用转换器。ColorLogStatus

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

于 2013-01-22T14:56:39.100 回答