Простое событие C # args вопрос - PullRequest
1 голос
/ 04 февраля 2010

Я использую WPF с классом Storyboard, который имеет событие Completed.

Я использую это так:

sb.Completed += AddControlToTaskbar;

private void AddControlToTaskbar(object sender, EventArgs args)
{
    //...
}

Как передать EventArgs моему методу? Это всегда ноль, и мне нужно, чтобы это был пользовательский класс

Спасибо Mark

1 Ответ

5 голосов
/ 04 февраля 2010

Вы не передаете EventArgs своему методу, который делает среда, которая отправляет событие.Распространенный способ справиться с этим - заключить ваш метод AddControlToTaskbar в класс, который хранит состояние, например:

sb.Completed += new MyCustomClass(theStateYouNeedToStore).AddControlToTaskbar;

Ваш конструктор хранит состояние.

class MyCustomClass<T> {
    private T state;
    public MyCustomClass(T state) {
        this.state = state;
    }
    public void AddControlToTaskbar(object sender, EventArgs args) {
        // Do what you need to do, you have access to your state via this.state.
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...