EventTrigger 无法在 IsEnabledChanged 上触发
EventTrigger fails to trigger on IsEnabledChanged
我有一个自定义控件继承自 UserControl
,我是 enabling/disabling 通过绑定并尝试对 IsEnabledChanged
使用 EventTrigger
导致 ChangePropertyAction
要执行的行为。
<local:StockmarketFilecard x:Name="StockmarketReport2" VerticalAlignment="Bottom" Panel.ZIndex="0" IsEnabled="{Binding DataContext.BankReportEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}">
<Interactions:Interaction.Triggers>
<Interactions:EventTrigger EventName="IsEnabledChanged">
<Interactions:ChangePropertyAction PropertyName="MaxHeight" Value="100"/>
</Interactions:EventTrigger>
</Interactions:Interaction.Triggers>
</local:StockmarketFilecard>
Interactions
使用 http://schemas.microsoft.com/xaml/behaviors 命名空间。
问题是 ChangePropertyAction
没有执行,尽管控件明显变为 enabled/disabled。我已经测试过在控件上为 IsEnabledChanged
添加一个代码隐藏事件处理程序,它按预期被调用。我还测试了 Loaded
事件的触发,以验证操作是否正确以及控件是否按预期更改。
我缺少什么才能让 EventTrigger
在 IsEnabledChanged
上触发?
What am I missing to get the EventTrigger
to trigger on IsEnabledChanged
?
事实上 EventTrigger
只处理路由事件而 IsEnabledChanged
不是路由事件。
您可以在视图代码隐藏的事件处理程序中设置 MaxHeight
属性,或者按照建议实施附加行为 here。
我有一个自定义控件继承自 UserControl
,我是 enabling/disabling 通过绑定并尝试对 IsEnabledChanged
使用 EventTrigger
导致 ChangePropertyAction
要执行的行为。
<local:StockmarketFilecard x:Name="StockmarketReport2" VerticalAlignment="Bottom" Panel.ZIndex="0" IsEnabled="{Binding DataContext.BankReportEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}}">
<Interactions:Interaction.Triggers>
<Interactions:EventTrigger EventName="IsEnabledChanged">
<Interactions:ChangePropertyAction PropertyName="MaxHeight" Value="100"/>
</Interactions:EventTrigger>
</Interactions:Interaction.Triggers>
</local:StockmarketFilecard>
Interactions
使用 http://schemas.microsoft.com/xaml/behaviors 命名空间。
问题是 ChangePropertyAction
没有执行,尽管控件明显变为 enabled/disabled。我已经测试过在控件上为 IsEnabledChanged
添加一个代码隐藏事件处理程序,它按预期被调用。我还测试了 Loaded
事件的触发,以验证操作是否正确以及控件是否按预期更改。
我缺少什么才能让 EventTrigger
在 IsEnabledChanged
上触发?
What am I missing to get the
EventTrigger
to trigger onIsEnabledChanged
?
事实上 EventTrigger
只处理路由事件而 IsEnabledChanged
不是路由事件。
您可以在视图代码隐藏的事件处理程序中设置 MaxHeight
属性,或者按照建议实施附加行为 here。