2017-02-22 20 views
0

У меня есть следующие: частная пустота ButtonClick (объект отправителя, EventArgs е)Связывание данных в окнах форм или WPF

Когда я добавить к списку параметров, чтобы сделать: частной недействительным ButtonClick (объект отправителя, EventArgs e, Class c) , тогда это вызовет всевозможные проблемы. Тем не менее, мне нужно на самом деле хочу в моем главном:

Class c = new Class(); 

А потом я хотел нажать на кнопку так, что называется ButtonClick, но мне действительно нужен доступ к «классу с» в теле функции, так что я действительно необходимо

private void ButtonClick(object sender, EventArgs e, Class c) 

компилировать как-то.

Я пробовал другие способы решения проблемы, такие как создание класса static, но это создавало бы слишком много рефакторинга и приводило бы к другим ошибкам.

Я не знаю, возможно ли это в Windows Forms. Я не против перехода на XAML и WPF, я просто хочу знать, что делать что-то такое, как

private void ButtontClick(object sender, EventArgs e, Class c) 

будет возможно.

+0

Откуда вы проходите экземпляр класса c? –

+2

В отличие от названия, которое вы написали, это, похоже, не имеет ничего общего с привязкой данных. Выбранный дубликат отвечает на текст вопроса, который вы написали. В вашем случае вы можете подписаться на событие 'Click' следующим образом:' button1.Click + = (sender, e) => ButtonClick (отправитель, e, c); '. –

ответ

0

Просто введите Class c переменную члена в вашем основном классе, где находится ваш обработчик событий ButtonClick. Если этот обработчик событий ButtonClick не является вашим собственным обработчиком событий, вы не можете добавить дополнительные параметры в обработчик событий Click фрейма для кнопки. Вам нужно будет получить доступ к вашей переменной Class c в качестве переменной-члена или использовать команды и привязки команд с параметрами команды.

0

Вы можете положить c в собственность Button.Tag и использовать ((Button)sender).Tag в обработчике событий щелчка, чтобы получить его.