Щоб встановити стиль, коли елемент вибрано або не все, що вам потрібно зробити, це отримати ListBoxItem
батьківський файл у вашому <DataTemplate>
стилі та викликати зміни, коли його IsSelected
зміни. Наприклад, код нижче створить зелений колір TextBlock
за замовчуванням . Тепер, якщо елемент вибрано, шрифт стане червоним, а коли миша буде над елементом, стане жовтим . Таким чином, вам не потрібно вказувати окремі шаблони даних, як пропонується в інших відповідях для кожного стану, який ви хочете трохи змінити.Foreground
<DataTemplate x:Key="SimpleDataTemplate">
<TextBlock Text="{Binding}">
<TextBlock.Style>
<Style>
<Setter Property="TextBlock.Foreground" Value="Green"/>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={
RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem }}}"
Value="True">
<Setter Property="TextBlock.Foreground" Value="Red"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=IsMouseOver, RelativeSource={
RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem }}}"
Value="True">
<Setter Property="TextBlock.Foreground" Value="Yellow"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>