Untuk menyetel gaya saat item dipilih atau tidak, yang perlu Anda lakukan adalah mengambil ListBoxItem
induk di Anda <DataTemplate>
dan gaya pemicu berubah saat IsSelected
berubah. Misalnya kode di bawah ini akan membuat TextBlock
dengan Foreground
warna default hijau . Sekarang jika item dipilih, font akan berubah menjadi merah dan ketika mouse di atas item akan menjadi kuning . Dengan begitu, Anda tidak perlu menentukan templat data terpisah seperti yang disarankan dalam jawaban lain untuk setiap status yang ingin Anda ubah sedikit.
<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>