我有一个ListBox
的样式。在ListBox
样式中,我有ListBoxItems的样式。所有这一切都在本节中。
我想捕获列表框项目的IsEnabledChanged
事件(请参阅this question了解原因)。我尝试设置EventSetter
,但无法看到该事件,因为它不是“路由事件”。
如何将事件附加到此模板项目? (请记住,它不附加到特定的ListBox
本身。它是
以下是一些示例代码,用于说明我在说什么。
<Style x:Key="CheckBoxListStyle" TargetType="ListBox">
<Style.Resources>
<Style TargetType="ListBoxItem">
<EventSetter Event="IsEnabledChanged" Handler="OnEnabledChanged"\>
.... ^
|
This is not allowed ------
无法找到此活动。试图获得更具体的ListBoxItem.IsEnabledChanged
并没有帮助。
编辑: 我没有在XAML中这样做。如果有其他方法可以通过后面的代码执行此操作,那将同样好。我只是不知道如何从后面的代码访问资源模板。
答案 0 :(得分:1)
不幸的是,EventTrigger只适用于RoutedEvents(MSDN),在这种情况下不可能使用CLR事件。
来自文章:
...当EventTrigger对象启动一个集合时 指定路由时的操作数 事件发生。