当用户持有SHIFT键以显示它会影响该项时,我需要某些元素来改变外观(更改颜色,添加文本等等)。
并非所有项目都具有相同的DataContext,所以我相信我不能将它绑定到MainWindow中的一个DependencyProperty。
每个都有类似
的东西<DataTrigger Binding="{[ShiftPressed]"} Value="True">
<Setter [change color/add text/...]/>
</DataTrigger>
你会怎么做?如果很多ListBoxItems听了它会影响性能吗?
答案 0 :(得分:0)
我很想使用数据触发器绑定到名为&#34; IsShiftPressed&#34;之类的布尔属性,并使用可视状态管理器和DataStateBehaviour在每个状态之间切换两个状态你的控制:正常状态和转移状态。
然后,您的各种控件将侦听单个bool属性更改,而不是实现多个键触发器。您可以更好地控制何时以及如何触发该状态。
如果你担心性能问题,我不确定WPF如何在长列表情况下处理这样的事情,但提供列表是在列表框中虚拟化,不应该是任何重大的性能点击担心使用州经理。
更新:刚才意识到你已经在你的问题中定义了布尔属性。对不起!