1
我已经列表视图,我想根据结合的值来改变它的风格,所以我做了以下标签绑定,并引发
<Style x:Key="ListBoxItemStyleDragAndDropNew" TargetType="{x:Type ListBoxItem}">
<Setter Property="Tag" Value="{Binding IsReadedBefore}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<ControlTemplate.Triggers>
<Trigger Property="Tag" Value="true">
<Setter Property="Background" TargetName="Bd" Value="#7F084D78"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="BorderThickness" TargetName="Bd" Value="4,0,0,0"></Setter>
<Setter Property="BorderBrush" TargetName="Bd" Value="{DynamicResource btnColorNew}"/>
<Setter Property="Margin" TargetName="Bd" Value="0"/>
<Setter Property="Padding" TargetName="Bd" Value="4,0,0,0"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
IsRead是布尔值,我甚至试过<Setter Property="ListBoxItem.Tag" Value="{Binding IsReadedBefore}"/>
但没什么用IsReadedBefore= true
任何想法改变如何解决这个问题
使用。在你的代码中,你正在比较布尔与对象 –
1)为什么你必须重写控制模板?你可以使用Style.Triggers。 2)使用DataTrigger或写一个转换器将对象转换为布尔值。 – user1672994