列表框项目WPF,不同项目的不同背景颜色

我有一个WPF ListBox,其中包含我所拥有的特定类的项目的绑定列表。 像这样的东西:

ObservableCollection tables = new ObservableCollection(); ... listTables.ItemsSource = tables; 

和XAML:

          

一切正常。 我现在要做的是对ListBox中的每个项目有不同的背景,具体取决于类的某个属性。 例如,假设MyTable类有一个名为isOccupied的属性。 如果为某个项目设置了这个标志,我希望它在ListBox中有一个红色背景,如果不是,那么我想让它具有绿色背景。 如果属性发生更改,则背景应相应更改。

有关如何实现这一目标的任何提示? 我正在查找有关ItemContainerStyle的一些信息,但我对此比较陌生,所以我不确定我是否遵循了正确的道路。

您可以使用DataTrigger实现这一DataTrigger

                  

请记住,如果您希望在运行时更改这些值,则您的数据项必须正确实现并引发属性更改通知 :

 public class MyTable: INotifyPropertyChanged //Side comment: revise your naming conventions, this is not a table. { private bool _isOccupied; public bool IsOccupied { get { return _isOccupied; } set { _isOccupied = value; NotifyPropertyChange("IsOccupied"); } } //.. Other members here.. }