[英]How to subscribe to an event dynamically using anonymous methods?
我正在使用LoadControl(String)
动态创建许多UserControl
并希望订阅其中每个事件。
我所有的控件都继承了一个公共Interface
,该Interface
需要实现一个公共Event
:
public interface IObjectProcessor
{
event EventHandler<ObjectProcessedEventArgs> ObjectProcessed;
}
因此,我接下来要进行页面加载事件:
protected void Page_Load()
{
switch(Request["type"])
{
case "user":
{
LoadControl("AddUser.ascx", delegate(object sender, ObjectProcessedEventArgs e)
{
// do something
});
break;
}
}
}
private void LoadControl(string path, Action<object, ObjectProcessedEventArgs> action)
{
var control = (IObjectProcessor)LoadControl(path)
control.ObjectProcessed // here!
}
如何订阅此事件?
将Action<object, ObjectProcessedEventArgs>
更改为EventHandler<ObjectProcessedEventArgs>
:
private void LoadControl(string path, EventHandler<ObjectProcessedEventArgs> handler)
{
var control = (IObjectProcessor)LoadControl(path)
control.ObjectProcessed += handler;
}
control.ObjectProcessed += action
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.