嗨,我正在尝试在运行时动态地为列表视图项目的 bg 添加颜色,但我得到以下异常。
无法将类型为"RootObject.Controls.ListItem"的对象转换为类型"System.Windows.Controls.ListViewItem"。
我的要求是在单击按钮时检查条件,如果过程成功,则将 bg 更改为绿色,否则为红色。这是我的 WPF 代码
<ListView x:Name="ListView" SelectionChanged="List_SelectionChanged" MouseDoubleClick="List_MouseDoubleClick" SelectionMode="Single"/>
这是我背后的代码,
if(RootVal.sendResult == true)
{
foreach (ListViewItem item1 in ListView.Items)
{
item1.Background = System.Windows.Media.Brushes.Green;
}
}
ListView 的Items
属性不包含控件,它包含(视图)模型。(您设置为项目源的那些)
使用此 MVVM 样式的正确方法是将 ListViewDataTemplate
的背景颜色绑定到(视图)模型的属性。
如果您仍在寻找一种设置ListViewItem
背景颜色的方法,请查看如何访问 WPF 列表视图的列表视图项?
(但请注意,他们不是那么容易到达)