希望有人可以在这里提供帮助。
我有一个ListView,它由我的ViewModel中的List属性填充。
我的ViewModel中有另一个List属性,其中包含我需要突出显示的UI中的行。
<ListView.Resources>
<Style TargetType="ListViewItem">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</ListView.Resources>
这完全是看起来的样子,我在ListView中选择的任何项目都以红色突出显示。 我希望能够将此样式触发器绑定到ViewModel中的List属性。
有人知道如何实现这一目标吗?
答案 0 :(得分:4)
在您的商品上创建名为IsSelected
的商家,并将其绑定到您的ListViewItem.IsSelected
<Style TargetType="ListViewItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
修改强>
如果要基于DataItem中的属性应用其他样式设置器,请使用DataTrigger而不是常规Trigger。常规触发器仅用于UI元素属性,而不是绑定。
<Style TargetType="ListViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding IsHighlighted}" Value="True">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>