我有一个我希望能够处理网格的鼠标向上事件的类。

我试图用这样的静态方法调用来创建它:

MyDataBinding.BindObjectsToDataGrid(ListOfObjectsToBind, myGrid.MouseUp);


最终目标是在该方法中,我将为MouseUp分配一个委托

PassedInMouseUp += myMethodThatWillHandleTheMouseUp;


(对我来说)在这里看起来不错,但是编译器在第一行就很窒息。它说我只能将MouseUp与+ =或-=一起使用。

显然,我正在以错误的方式进行操作。如何获得一个不同的类来处理鼠标而不必:


传递整个网格
将公开处理鼠标的方法公开。


或者,这仅仅是一个限制,我将不得不执行以上任一操作?

最佳答案

没有反射就不可能做到这一点。

与属性一样,.Net事件会编译为一对访问器方法-add_EventNameremove_EventName。没有什么可以作为参数传递的。

关于c# - 将事件传递给构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2970095/

10-10 20:53