C# 无法隐式转换类型';System.EventHandler';至';System.Windows.RoutedEventHandler';在c中#

C# 无法隐式转换类型';System.EventHandler';至';System.Windows.RoutedEventHandler';在c中#,c#,windows-phone-8,C#,Windows Phone 8,在windows phone应用程序中,我想动态添加一个按钮,如下所示: Button btn = new Button(); btn.Content = tb_groupname.Text; btn.Width = 200; btn.Height = 200; btn.Click += new EventHandler(btn_Click);//Click event 但当我在按钮上添加click事件时,我得到以下错误: Cannot implicitly convert type 'Sys

在windows phone应用程序中,我想动态添加一个按钮,如下所示:

Button btn = new Button();
btn.Content = tb_groupname.Text;
btn.Width = 200;
btn.Height = 200;
btn.Click += new EventHandler(btn_Click);//Click event
但当我在按钮上添加click事件时,我得到以下错误:

Cannot implicitly convert type 'System.EventHandler' to 'System.Windows.RoutedEventHandler'
下面是按钮的点击事件方式:

private void btn_Click(object sender, EventArgs e)
{
  textbox1.text = "ABC"; // For Example
}
我不明白为什么会有这样的错误。 请建议我,等待答复。
谢谢。

事件处理程序的签名错误

应该是:

private void btn_Click(object sender, RoutedEventArgs e)
事件分配应更改为:

btn.Click += new RoutedEventHandler(btn_Click);//Click event

您需要使用
RoutedEventHandler
(可在
System.Windows
程序集中找到)

在您的情况下,您应该能够更改
btn.Click+=neweventhandler(btn\u Click)带有
btn.Click+=new System.Windows.RoutedEventHandler(btn\u Click);然后更改
EventArgs
ob btn\u单击以
RoutedEventArgs

确保添加对
系统.Windows
程序集的引用,否则它将无法编译

查看MSDN,我得到了以下信息:

RoutedEventHandler委托用于执行以下操作的任何路由事件: 不在事件数据中报告特定于事件的信息。有 许多这样的事件;突出的例子包括单击和加载

为路由服务器编写处理程序之间最值得注意的区别 与通用公共语言运行库(CLR)事件相反的事件是 事件的发送者(处理程序所在的元素) 附加和调用)不一定是 事件的来源。源在事件中报告为属性 数据(来源)。发送方和源之间的差异是 在遍历过程中路由到不同元素的事件 通过元素树路由的事件


链接到。

按钮点击是Patrick Hofman提到的路由事件

如果您不想要新事件,您甚至可以通过编写来缩短
点击+=btn\U点击

这给我带来了另一个错误,
btn\u Click“matches delegate”系统没有重载。EventHandler'
您是否也更改了
Click
分配?单击分配应指向