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