#c# #wpf #events
#c# #wpf #Мероприятия
Вопрос:
Я хочу сделать что-то вроде этого:
<Grid Button.Click="grid_Button_Click">...</Grid>
но в коде.
Я прочитал http://msdn.microsoft.com/en-us/magazine/cc785480.aspx , но я не нашел ответа.
Например, у меня есть код:
Object gr = new FrameworkElement();
gr.Click = = ( o, args ) => { /* ... */ };
Как это сделать?
ОТРЕДАКТИРОВАНО
Комментарии:
1. Почему вы хотите установить его программно? Нужно ли добавлять событие во время выполнения после того, как произошли какие-то другие события?
2. Вы пытаетесь получить, когда пользователь нажимает в любом
Grid
месте или в строке или ячейке или что? У каждого из них есть немного другое решение.3. Я хочу сделать это для управления с любым типом. На самом деле я не знаю тип элемента управления, потому что это тип объекта. Я знаю только, что это будет элемент управления пользовательским интерфейсом
Ответ №1:
Вы, конечно, можете это сделать, хотя я бы обсудил необходимость.
В любом случае, это можно сделать следующим образом…
Grid g = new Grid();
g.MouseLeftButtonDown = (s, args) =>
{
//do stuff, you can reference s and args where s is the sender
};
Ответ №2:
Чтобы добавить обработчик к присоединенному событию, вызовите Add*Handler
метод:
Class.AddSomeHandler(grid, (o, args) => ...);
Button.Click
не является присоединенным событием, поэтому этот метод не существует.
Комментарии:
1. Итак, что я могу использовать вместо этого?
2. Это не имеет смысла. Это не прикрепленное событие.
3. Есть ли какой-либо список подключенных событий? Есть ли у вас какая-либо ссылка на список подключенных событий?