【发布时间】:2013-11-20 15:14:26
【问题描述】:
我有一个 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 的一些信息,但我对此比较陌生,所以我不确定我是否走在正确的道路上。
【问题讨论】: