我想在c#中将控件的填充颜色绑定到布尔值,所以如果它是false,颜色是红色,如果它是true,则颜色是绿色。控制XAML控件从c#中填充颜色的正确方法是什么?
XAML很新,但想从一开始就进入良好的习惯。
感谢,
本
我想在c#中将控件的填充颜色绑定到布尔值,所以如果它是false,颜色是红色,如果它是true,则颜色是绿色。控制XAML控件从c#中填充颜色的正确方法是什么?
XAML很新,但想从一开始就进入良好的习惯。
感谢,
本
查看模型存在数据转换成用户界面可以使用的格式,所以在视图模型创建Color
类型的属性,可以做从逻辑转换的形式存储的布尔值为Color
值。调用此属性'DisplayColor'。
每当布尔值更改颜色(如果它随时间变化)时,使用ViewModel上的INotifyPropertyChanged
接口在'DisplayColor'属性上引发事件。这将确保只要布尔值发生更改,UI就会自行更新。
然后将控件的颜色属性绑定到视图模型的新'DisplayColor'属性(假设您已将DataContext
设置为ViewModel)。
我这样做是为了在第一时间就在昨天:)
你也可以实现一个IValueConverter
执行布尔与颜色之间的转换。然后直接将color属性绑定到布尔值,但是在绑定中指定新的IValueConverter。
当您无法控制要绑定的类时,此方法可能特别有用。请参阅http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx。
你能否添加另一个属性BoolAsColor,它返回所需的颜色并将填充颜色绑定到该属性? – 2010-08-11 09:30:39
所以(并为我的无知道歉)使我的布尔自定义类,并添加填充颜色属性? – Ben 2010-08-11 09:40:16