gpt4 book ai didi

c# - 如何从事件中删除/注销事件处理程序?

转载 作者:行者123 更新时间:2023-11-30 13:17:38 31 4
gpt4 key购买 nike

我制作了一个自定义的 uitableviewcell 。该单元格由标签和一个 UIButton 组成。一切正常,直到我发现可重用单元与向 uibutton 添加事件相结合存在一个小问题。因此,当我单击 ui 按钮时,单元格第一次运行良好。但是当我滚动它的那一刻开始给我错误的详细信息。如果我注释掉可重复使用的单元格部分(并让它每次都创建一个新单元格),它就可以正常工作,没有任何问题。所以我的假设是事件“挂起”到带有旧信息的单元格中。我这样添加事件:

myButton.TouchDown += delegate{
//some code here
}

显然我不能这样取消注册,对吗?在 monotuch 中克服这个特殊问题的最简单方法是什么?

最佳答案

您可以使用匿名方法和 lambda 作为事件处理程序。只需将它们保存为局部变量即可。

EventHandler theHandler = delegate(obj sender, EventArgs e) 
{ Console.WriteLine("The handler!"); };
//... or: EventHandler theHandler = (sender, args) => { Console.WriteLine("The handler!"); };
private void HookEvent()
{
myButton.TouchDown += this.theHandler;
}

private void UnhookEvent()
{
myButton.TouchDown -= this.theHandler;
}

关于c# - 如何从事件中删除/注销事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7430467/

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