ItemTemplate 内にエキスパンダーを持つリストボックスがあります。エキスパンダーの IsExpanded プロパティを ListBoxItem の IsSelected プロパティにバインドできました。ここで、IsSelected プロパティにもバインドされた ListBoxItem のコンテンツにスタイルを適用したいと考えています。
<ListBox.ItemTemplate>
<DataTemplate>
<Border Name="myBorder">
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Description}" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="Date:"/>
<TextBlock Text="{Binding Date}"/>
</StackPanel>
<dx:DXExpander Name="expanderDetails"
IsExpanded="{Binding Mode=TwoWay, Path=IsSelected,
RelativeSource={RelativeSource AncestorType=ListBoxItem, Mode=FindAncestor}}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="Count:"/>
<TextBlock Text="{Binding Count}"/>
</StackPanel>
</dx:DXExpander>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
私がやりたいことは、「myBorder」ボーダーのスタイルを、選択されていないListBoxItemsの場合は「NotSelectedBorderStyle」に、SelectedItem(単一選択のListBox)の場合は「SelectedBorderStyle」に設定することです。
参考までに、スタイルは背景、境界線などを定義します。どのアイテムが選択されているかを明確にするためだけに、これらのスタイルには特別なものはありません。
ここで受け入れられた答えを試しましたが、スタイルを完全に切り替えると、DXExpander の素敵な拡張アニメーションが失われます。
トリガーを使用した解決策があるに違いないと思いますが、適切な場所にヒットすることはできません。