我有一个WPF列表框,其中包含一个来自特定类的项目的绑定列表。事情是这样的:列表框项目WPF,不同项目的不同背景颜色
ObservableCollection<MyTable> tables = new ObservableCollection<MyTable>();
...
listTables.ItemsSource = tables;
而XAML:
<ListBox HorizontalAlignment="Left" Margin="8,10,0,0" Name="listTables" Width="153" ItemsSource="{Binding tables}" SelectionChanged="listTables_SelectionChanged" Height="501" VerticalAlignment="Top">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="1">
<TextBlock Grid.Column="1" Text="{Binding tableName}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
一切工作正常。我现在想要做的是对ListBox中的每个项目有不同的背景,具体取决于类的某个属性。例如,假设MyTable类有一个名为isOccupied的属性。如果这个标志是为某个项目设置的,我希望它在ListBox中有一个红色背景,如果它不是,那么我想让它具有绿色背景。如果该属性发生变化,则背景应相应更改。
有关如何实现此目的的任何提示?我现在正在查找有关ItemContainerStyle的一些信息,但是我对此比较陌生,所以我不确定是否遵循正确的路径。
你可能还有eran的旧+1。 ;) – Sheridan
这非常有帮助,就像一个魅力。非常感谢你! – mmvsbg