将另一个类的静态方法绑定为WPF控制事件的处理程序

时间:2019-06-05 20:09:21

标签: wpf

我有一个窗口,说MainWindow,上面有一些NumericUpDowns。我还有另一个MyCalculatorWindow窗口,像这样:

public class MyCalculatorWindow : Window {

    public static void LongUpDown_TouchUp(object sender, TouchEventArgs e)
    {
         // Show calculator and set numeric value when OK button is pressed.
    }

    // The rest of the MyCalculator functionality...
}

是否有一种方法可以将该静态方法绑定到xaml中TouchUp s的LongUpDown事件处理程序属性(最好一次绑定到所有这些事件)?像这样:

<xctk:LongUpDown TouchUp="{Binding Something??? MyCalculator.LongUpDown_TouchUp}" />

1 个答案:

答案 0 :(得分:0)

  

是否有一种方法可以将该静态方法绑定到xaml中的LongUpDowns的TouchUp事件处理程序属性(理想情况下一次绑定到所有这些方法)?像这样:

不,没有。 XAML编译器只能在与元素本身相同的类中找到事件处理程序。

您可以在代码隐藏文件中为TouchUp元素所在的视图定义一个<xctk:LongUpDown />事件处理程序,然后从那里调用静态方法。这是单线的:

private void Window65_TouchUp(object sender, TouchEventArgs e) => MyCalculatorWindow.LongUpDown_TouchUp(sender, e);