简单的C#事件args问题

时间:2010-02-04 02:31:32

标签: c# events delegates

我正在使用WPF,其中Storyboard类有Completed个事件。

我这样使用它:

sb.Completed += AddControlToTaskbar;

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

如何将EventArgs传递给我的方法?它总是为null,我需要它是一个自定义类

由于 标记

1 个答案:

答案 0 :(得分:5)

您没有将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.
    }
}