Xaml 修改器按键作为触发器

Xaml 修改器按键作为触发器,xaml,Xaml,我需要某些元素来改变外观,改变颜色,添加文字等。。。当用户按住SHIFT键显示时,它将影响该项目 并非所有项目都具有相同的DataContext,所以我相信我不能仅将其绑定到MainWindow中的一个DependencyProperty 每个都会有类似的 <DataTrigger Binding="{[ShiftPressed]"} Value="True"> <Setter [change color/add text/...]/> </DataTrig

我需要某些元素来改变外观,改变颜色,添加文字等。。。当用户按住SHIFT键显示时,它将影响该项目

并非所有项目都具有相同的DataContext,所以我相信我不能仅将其绑定到MainWindow中的一个DependencyProperty

每个都会有类似的

<DataTrigger Binding="{[ShiftPressed]"} Value="True">
    <Setter [change color/add text/...]/>
</DataTrigger>

你会怎么做?如果很多ListBoxItems都听了,这会对性能产生很大影响吗?

我会尝试使用数据触发器绑定到一个名为IsShift Pressed的布尔属性,并使用可视化状态管理器以及DataStateBehavior在每个控件的两种状态之间切换:正常状态,和一个转变的状态

然后,您的各种控件将侦听单个bool属性更改,而不是实现多个键触发器。您可以更好地控制何时以及如何触发该状态

如果您关心性能,我不确定WPF在长列表场景下如何处理类似的事情,但是如果您的列表在列表框中虚拟化,那么使用状态管理器就不必担心任何重大性能问题

更新:刚刚意识到您已经在问题中定义了布尔属性。对不起