如果这个问题是基本的话,我仍然试图了解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个选项可以完成我的简单任务,在某些情况下是一个比另一个更好,还有一个是折旧/旧还是我只是为了安抚MVVM模式而被迫使用选项2?
我认为如果我最终需要2路绑定(例如我可以从GUI更新状态)那么MVVM会更好,但是就目前而言,是否有人有任何想法?
答案 0 :(得分:3)
您只需编写一个自定义IValueConverter
,即LogStatus
并将其转换为颜色。将Text
直接绑定到LogStatus
,并使用转换器将控件的Color
绑定到LogStatus
。
代码非常简单(只需实现一个方法,将转换器添加为XAML资源并在绑定中引用它),但是您可以看到类似的示例here。