添加ListViewItem时,我的ItemContainerStyle工作正常:
<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>
但是当源项目发生更改时,触发器不会被触发,背景颜色也不是我所期望的。
如何触发触发?
答案 0 :(得分:1)
绑定上的Path可能应该是DataContext所拥有的属性,而不是DataContext本身。该属性将返回-1,-2,-3或其他任何东西。当该值更改时,将评估触发器。这里的问题是一旦加载,DataContext很可能不会改变。