EventTrigger无法在IsEnabledChanged

时间:2019-04-24 09:41:31

标签: wpf xaml blend

我有一个自UserControl继承的自定义控件,我正在通过绑定启用/禁用该控件,并尝试对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>

Interactions使用http://schemas.microsoft.com/xaml/behaviors命名空间。

问题是尽管控制明显地变为启用/禁用状态,ChangePropertyAction仍未执行。我已经测试过在控件上为IsEnabledChanged添加一个代码隐藏事件处理程序,并且按预期方式进行调用。我还测试了Loaded事件的触发,以验证操作正确并且控件按预期进行了更改。

EventTrigger触发IsEnabledChanged时我想念什么?

1 个答案:

答案 0 :(得分:1)

  

EventTrigger触发IsEnabledChanged时我想念什么?

EventTrigger仅处理路由事件而IsEnabledChanged不是路由事件的事实。

您可以在视图代码背后的事件处理程序中设置MaxHeight属性,也可以按照建议的here实施附加行为。