我有一个继承自 UserControl
的自定义控件,我通过绑定(bind)启用/禁用该控件,并尝试使用 EventTrigger
进行 IsEnabledChanged
来导致执行 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>
交互
使用http://schemas.microsoft.com/xaml/behaviors命名空间。
问题是,尽管控件明显启用/禁用,但 ChangePropertyAction
并未执行。我已经测试了在控件上为 IsEnabledChanged
添加代码隐藏事件处理程序,并且按预期调用它。我还测试了 Loaded
事件的触发,以验证操作是否正确以及控件是否按预期更改。
要让 EventTrigger
在 IsEnabledChanged
上触发,我缺少什么?
最佳答案
What am I missing to get the
EventTrigger
to trigger onIsEnabledChanged
?
事实上,EventTrigger
仅处理路由事件,而 IsEnabledChanged
不是路由事件。
您可以在 View 代码隐藏的事件处理程序中设置 MaxHeight
属性,或者按照建议实现附加行为 here .
关于wpf - EventTrigger 无法在 IsEnabledChanged 上触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55827019/