gpt4 book ai didi

wpf - 使用 DataTrigger 动态设置事件处理程序

转载 作者:行者123 更新时间:2023-12-04 06:07:20 26 4
gpt4 key购买 nike

我有几个项目控件,我需要为它们附加一个事件处理程序
PreviewMouseLeftButtonDown 事件仅在满足某个条件时发生。

我用数据触发器为我的控件设计了一种样式,我检查了它的绑定(bind)并使用 进行了尝试常规属性 setter 对于 BorderThickness 属性,只是为了查看数据触发器是否有效
. (它确实..)

当使用事件 setter 以与常规属性 setter 相同的方式满足数据触发器的条件时,如何应用我的数据触发器来附加事件处理程序?

类似于:

     <Style TargetType="{x:Type ItemsControl}">                              
<Style.Triggers>
<DataTrigger Binding="{Binding Turn}" Value="True">
<EventSetter Event="PreviewMouseLeftButtonDown" Handler="ItemsControl_MouseLeftButtonDown"></EventSetter>
</DataTrigger>
</Style.Triggers>
</Style>

此标记在 eventsetter 行上引发以下异常:
    'Set property 'System.Windows.EventSetter.Event' threw an exception.' 

内部异常:
       {"Value cannot be null.\r\nParameter name: value"}

最佳答案

不幸的是,根据 MSDN doc在备注下:

Note that only Style.Setters supports EventSetter objects. Triggers (TriggerBase and derived classes) do not support EventSetter



在这种情况下,DataTrigger 是从 TriggerBase 派生的,因此您不能使用它来动态设置事件处理程序。我现在能想到的一种解决方法可能是根据 Turn 的值动态切换样式。 .

关于wpf - 使用 DataTrigger 动态设置事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9673966/

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