以编程方式将事件添加到按钮

时间:2017-07-21 15:11:28

标签: c# wpf

我想在程序生成的按钮中添加一个事件,如下所示:

Button activityButton = new Button();
activityButton.Click += new EventHandler(onChangeActivityFilter);

我在第二行收到以下异常:

  

无法将System.EventHandler隐式转换为System.Windows.RoutedEventhandler

onChangeActivityFilter方法如下所示:

private void onChangeActivityFilter(object sender, EventArgs e)
{

}

我想知道我做错了什么。

2 个答案:

答案 0 :(得分:5)

您需要创建RoutedEventHandler的实例:

activityButton.Click += new RoutedEventhandler(onChangeActivityFilter);

并且还更改方法签名:

private void onChangeActivityFilter(object sender, RoutedEventArgs e)
{

}

使用WPF引入的RoutedEvents。

答案 1 :(得分:0)

您也可以使用lambda函数

activityButton.Click += (sender, e) => 
{
    MessageBox.Show("the button was clicked");
};