У меня есть ListBox
, который содержит объекты, описывающие человека. Эти объекты заполнены только частично и полностью заполнены (дорогостоящая операция) при нажатии на элемент. Я хочу изменить стиль тех объектов, которые еще не были заполнены, чтобы частично заполненные элементы отображались курсивом.
Я сделал ItemTemplate
:
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Style="{StaticResource PersonWithData}"/>
</DataTemplate>
</ListBox.ItemTemplate>
и определил Style
:
<Style x:Key="PersonWithData" TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding HasData}" Value="True">
<Setter Property="FontStyle" Value="Normal"/>
</DataTrigger>
<DataTrigger Binding="{Binding HasData}" Value="False">
<Setter Property="FontStyle" Value="Italic"/>
</DataTrigger>
</Style.Triggers>
</Style>
Это на самом деле работает. Проблема, которую я имею, состоит в том, чтобы заставить стиль обновляться при нажатии на элемент. Объект заполняется и затем должен изменить стиль с курсива на обычный.
Что я могу сделать, чтобы заставить ListItem
или ListBox
перерисовать себя и обновить стили? Или я должен использовать какое-то уведомление при изменении свойства HasData?