我有一个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 属性更改时使用某种通知?