Чтобы установить стиль, когда элемент выбран или не все, что вам нужно сделать, это получить 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>