我想将控件填充颜色绑定到c#中的布尔值,因此如果为false,则颜色为红色,如果为真,则颜色为绿色。
XAML很新,但想从一开始就养成良好的习惯。
谢谢,
本
答案 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。