0
我有一个列表框绑定到数据输入屏幕的对象列表。项目模板包括文本块,复选框和组合框。WPF Databound Listbox
当列表框填充我想给的TextBlocks的前景颜色变为红色,如果object.value1 =真,object.value2 = 0
任何想法?
我有一个列表框绑定到数据输入屏幕的对象列表。项目模板包括文本块,复选框和组合框。WPF Databound Listbox
当列表框填充我想给的TextBlocks的前景颜色变为红色,如果object.value1 =真,object.value2 = 0
任何想法?
下面的代码工作:
XAML
<ListBox Name="ListBox1">
<ListBox.ItemTemplate>
<DataTemplate>
<DataTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Value1}"
Value="1" />
<Condition Binding="{Binding Value2}"
Value="0" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter TargetName="RootBorder"
Property="Border.Background"
Value="#EEE" />
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</DataTemplate.Triggers>
<Border Name="RootBorder">
<TextBlock Text="{Binding Text}" />
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
类
public class Model
{
public Int32 Value1 { get; set; }
public Int32 Value2 { get; set; }
public String Text { get; set; }
}
代码
models.Add(new Model() { Value1 = 0, Value2 = 0, Text = "Item #1" });
models.Add(new Model() { Value1 = 1, Value2 = 0, Text = "Item #2" });
models.Add(new Model() { Value1 = 0, Value2 = 1, Text = "Item #3" });
models.Add(new Model() { Value1 = 0, Value2 = 0, Text = "Item #4" });
models.Add(new Model() { Value1 = 1, Value2 = 0, Text = "Item #5" });
models.Add(new Model() { Value1 = 0, Value2 = 1, Text = "Item #6" });
models.Add(new Model() { Value1 = 0, Value2 = 0, Text = "Item #7" });
models.Add(new Model() { Value1 = 1, Value2 = 0, Text = "Item #8" });
models.Add(new Model() { Value1 = 1, Value2 = 1, Text = "Item #9" });
ListBox1.ItemsSource = models;
使用MVVM,并让您的视图模型公开一个属性,它检查条件并返回颜色。然后前景色到属性绑定:-)