从c#控制XAML控件填充颜色的正确方法是什么?

时间:2010-08-11 09:24:02

标签: c# xaml binding

我想将控件填充颜色绑定到c#中的布尔值,因此如果为false,则颜色为红色,如果为真,则颜色为绿色。

XAML很新,但想从一开始就养成良好的习惯。

谢谢,

2 个答案:

答案 0 :(得分:1)

存在视图模型以将数据转换为UI可以使用的格式,因此在ViewModel中为从存储的布尔值到{{1}进行逻辑转换的表单创建类型为Color的属性价值。将此属性称为“DisplayColor”。

每次布尔值改变颜色时(如果它随时间变化),使用ViewModel上的Color接口在“DisplayColor”属性上引发事件。这将确保只要布尔值发生变化,UI就会自动更新。

然后将控件的color属性绑定到视图模型的新“DisplayColor”属性(您可能已将INotifyPropertyChanged设置为ViewModel,大概是)。

我昨天第一次这样做了:)

答案 1 :(得分:1)

您还可以实现IValueConverter来执行布尔值和颜色之间的转换。然后直接将color属性绑定到Boolean,但在绑定中指定新的IValueConverter。

当您无法控制要绑定的类时,此方法尤其有用。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx