我有一个 WPF ListBox,其中包含来自特定类的绑定项目列表。类似于这样:
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的信息,但我相对较新,所以不确定是否走上了正确的道路。