如何将IsEnabledChanged(未路由的事件)路由到EventHandler WPF

时间:2019-09-20 18:10:03

标签: wpf xaml events event-handling isenabled

我只是想在IsEnabled变为false时将xaml中NumericUpDown元素的值重置为0,但是检查IsEnabled更改不是路由事件。这是我目前无法使用的内容,因为此事件不是路由事件

我的XAML代码:

<CheckBox Name="AirportTemplate">Airport</CheckBox>

      <NumericUpDown Name="AirportToGen"
                     Width="300"
                     Minimum="0"
                     IsEnabled="{Binding ElementName=AirportTemplate, Path=IsChecked}"
                     IsEnabledChanged="ResetValueAirport"/>

我的C#背后的代码

private void ResetValueAirport(object sender, EventArgs e)
        {
            if (!AirportToGen.IsEnabled)
            {
                AirportToGen.Value = 0;
            }
        }

1 个答案:

答案 0 :(得分:0)

我猜您正在使用扩展的WPF工具包中的NumericUpDown类,在这种情况下,IsEnabledChanged事件需要带有签名private void handler(object sender, DependencyPropertyChangedEventArgs e)的处理程序。因此,请在后面的代码中改用以下代码:

private void ResetValueAirport(object sender, System.Windows.DependencyPropertyChangedEventArgs e)
    {
        if (!AirportToGen.IsEnabled)
        {
            AirportToGen.Value = 0;
        }
    }