我在WPF中有ListBox控件,它由一些可观察的类型集合填充:“Bus”。
Bus是一个包含两个属性的类
所以根据胸围类型,这里的项目应该有两种颜色
用于总线类型:
所有这些都应该来自WPF代码。
有没有人知道如何这样做.. [我不是WPF专家......一些细节会更有帮助。]
答案 0 :(得分:0)
设置BusType的Integer值 让我们说吧 睡眠者= 1 非睡眠= 2
只需在集合中为BusTypeID
添加一个属性即可
<Style.Triggers> <DataTrigger Binding="{Binding BusTypeID}" Value="1"> <Setter Property="Background" Value="Green"/> </DataTrigger> <DataTrigger Binding="{Binding BusTypeID}" Value="2"> <Setter Property="Background" Value="Blue"/> </DataTrigger> </Style.Triggers> </Style >
答案 1 :(得分:0)
你也可以通过后面的代码来做同样的事情..我们有以下方法来实现这一点..我希望这会对你有帮助..
DataTrigger datatrigger = new DataTrigger();
datatrigger.Binding = new Binding("BusTypeID");
datatrigger.Value = 1;
datatrigger.Setters.Add(new Setter(ListBoxItem.BackgroundProperty, Brushes.Green));
listbox.Triggers.Add(datatrigger);
DataTrigger datatrigger2 = new DataTrigger();
datatrigger2.Binding = new Binding("BusTypeID");
datatrigger2.Value = 2;
datatrigger2.Setters.Add(new Setter(ListBoxItem.BackgroundProperty, Brushes.Red));
listbox.Triggers.Add(datatrigger2);