gpt4 book ai didi

c# - 如何使用匿名方法动态订阅事件?

转载 作者:行者123 更新时间:2023-11-30 21:24:16 25 4
gpt4 key购买 nike

我正在使用 LoadControl(String) 动态创建多个 UserControl 并希望订阅其中每个控件的事件。

我所有的控件都继承了一个通用的 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!
}

如何为委托(delegate)订阅此事件?

最佳答案

更改 Action<object, ObjectProcessedEventArgs>EventHandler<ObjectProcessedEventArgs> :

private void LoadControl(string path, EventHandler<ObjectProcessedEventArgs> handler)
{
var control = (IObjectProcessor)LoadControl(path)
control.ObjectProcessed += handler;
}

关于c# - 如何使用匿名方法动态订阅事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1278217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com