gpt4 book ai didi

c# - 使用绑定(bind)触发样式更改

转载 作者:行者123 更新时间:2023-12-03 10:55:38 26 4
gpt4 key购买 nike

希望有人可以在这里提供帮助。

我有一个由 ViewModel 中的 List 属性填充的 ListView。

我的 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 中选择的任何项目都以红色突出显示。
我希望能够将此样式触发器绑定(bind)到我的 ViewModel 中的 List 属性。

有人知道如何实现吗?

最佳答案

创建一个名为 IsSelected 的属性在您的项目上并将其绑定(bind)到您的 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 中的属性应用其他样式 setter ,请使用 DataTrigger 而不是常规 Trigger。常规触发器仅用于 UI 元素属性,而不是绑定(bind)。
<Style TargetType="ListViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding IsHighlighted}" Value="True">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>

关于c# - 使用绑定(bind)触发样式更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9010113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com