C# 当绑定到的项目发生更改时,强制更改ListViewItem背景颜色
添加ListViewItem时,My ItemContainerStyle可以完美工作:C# 当绑定到的项目发生更改时,强制更改ListViewItem背景颜色,c#,wpf,listview,C#,Wpf,Listview,添加ListViewItem时,My ItemContainerStyle可以完美工作: <Style x:Key="ItemContStyle" TargetType="{x:Type ListViewItem}"> <Style.Resources> <SolidColorBrush x:Key="lossBrush" Color="Re
<Style x:Key="ItemContStyle"
TargetType="{x:Type ListViewItem}">
<Style.Resources>
<SolidColorBrush x:Key="lossBrush"
Color="Red" />
<SolidColorBrush x:Key="newPartNo"
Color="LightGreen" />
<SolidColorBrush x:Key="noSupplier"
Color="Yellow" />
<Orders:OrderItemStatusConverter x:Key="OrderItemConverter" />
</Style.Resources>
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=DataContext, Converter={StaticResource OrderItemConverter}}"
Value="-1">
<Setter Property="Background"
Value="{StaticResource lossBrush}" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=DataContext, Converter={StaticResource OrderItemConverter}}"
Value="-2">
<Setter Property="Background"
Value="{StaticResource newPartNo}" />
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self},Path=DataContext, Converter={StaticResource OrderItemConverter}}"
Value="-3">
<Setter Property="Background"
Value="{StaticResource noSupplier}" />
</DataTrigger>
</Style.Triggers>
</Style>
但是,当源项更改时,触发器不会触发,背景颜色也不是我所期望的
如何触发触发器?也许绑定上的路径应该指向DataContext持有的属性,而不是DataContext本身。该属性将返回-1、-2、-3或其他值。当该值更改时,将对触发器进行求值。这里的问题是,一旦加载,DataContext很可能不会更改。绑定上的路径应该是DataContext持有的属性,而不是DataContext本身。该属性将返回-1、-2、-3或其他值。当该值更改时,将对触发器进行求值。这里的问题是,一旦加载,DataContext很可能不会改变。我认为这也是问题所在,而且转换器似乎正在做一些工作来产生这个值。另外,为了澄清xaml,所有绑定都可以简化为:{Binding Converter={StaticResource OrderItemConverter},因为Self.DataContext是绑定的默认源。如果在转换器中完成的工作被移动到ViewModel,它可能只是{Binding}。我已经使用这种方法使它工作了-谢谢。但仍然不理想。我认为这也是问题所在,而且看起来转换器正在做一些工作来产生这个值。另外,为了澄清xaml,所有绑定都可以简化为:{Binding Converter={StaticResource OrderItemConverter},因为Self.DataContext是绑定的默认源。如果在转换器中完成的工作被移动到ViewModel,它可能只是{Binding}。我已经使用这种方法使它工作了-谢谢。但仍然不理想。