Не удается неявно преобразовать тип System.Система EventHandler 'to'.Окна.RoutedEventHandler ' в c#
в приложении 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
}
Я не понимаю, почему он получает эту ошибку. Пожалуйста, предложите мне, ожидая ответа. Спасибо.
3 ответов
подпись вашего обработчика событий неверна.
должно быть:
private void btn_Click(object sender, RoutedEventArgs e)
и Click
назначение события должно быть изменено на:
btn.Click += new RoutedEventHandler(btn_Click);//Click event
вам нужно использовать RoutedEventHandler
(нашли на System.Windows
сборка).
в вашем случае вы должны иметь возможность изменить btn.Click += new EventHandler(btn_Click);
С btn.Click += new System.Windows.RoutedEventHandler(btn_Click);
; а затем измените EventArgs
ob btn_Click to RoutedEventArgs
.
убедитесь, что вы добавить ссылку System.Windows
сборка или она не будет компилироваться!
глядя на MSDN, я получил это:
делегат RoutedEventHandler используется для любого маршрутизируемого события, которое не сообщать информацию о конкретных событиях в данные события. Есть многие такие маршрутизированные события; видные примеры включают щелчок и загрузку.
наиболее примечательная разница между написанием обработчика для маршрутизированного событие в отличие от общего события среды CLR что отправитель события (элемент, в котором находится обработчик прилагается и вызывается) не может рассматриваться как обязательно источник события. Источник сообщается как свойство в событии источник данных.) Разница между отправителем и источником-результат событие, направленное к различным элементам, во время обхода перенаправленное событие через дерево элементов.
ссылка в MSDN.
кнопка щелчок маршрутизируется событие, как упоминалось Патриком Хофманом.
вы даже можете сократить, если не хотите новое событие, просто написав btn.Нажмите кнопку += btn_Click;