我有一个 WPF 应用程序,可以动态添加和删除以列表视图为内容的选项卡。我想根据行中一列的内容更改列表视图中行的背景颜色。
我见过的所有解决方案都需要在 XAML 中使用样式,这与我当前的设置不兼容,因为列表视图完全是在运行时用 C# 创建的。
我尝试过创建样式并添加数据触发器和设置器,但它似乎没有改变任何东西。还有多个列表视图应该具有不同的样式,因此我不确定更改所有列表视图的默认样式是否合适。
列表视图的内容如下所示,WAR消息应该有黄色背景:
根据@lidqy的评论,解决方案是改变
logListView.Style = style;
到
logListView.ItemContainerStyle = style;
样式声明行也需要更改为
Style style = new Style(typeof(System.Windows.Controls.ListView));
到
Style style = new Style(typeof(System.Windows.Controls.ListViewItem));
因为 ItemContainerStyle 显然是应用于 ListViewItem(而不是 ListView)的样式。