我有一个
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
或
列表框
重新绘制并更新样式?或者当hasdata属性更改时,我应该使用某种通知吗?