gpt4 book ai didi

c# - 使用自定义参数取消订阅/删除事件处理程序

转载 作者:行者123 更新时间:2023-12-02 04:48:47 28 4
gpt4 key购买 nike

我使用以下代码订阅/创建自定义事件处理程序:

myButton.Click += (sender, e) => MyButtonClick(sender, e, stuff1, stuff2);


我想退订/删除并试过这样:

myButton.Click += MyButtonClick;

但抛出以下错误:
“MyButtonClick”的重载不匹配委托(delegate)“System.Windows.RoutedEventHandler”


像这样:

myButton.Click += MyButtonClick(sender, e, stuff1, stuff2);

但抛出以下错误:
无法将类型“void”隐式转换为“System.Windows.RoutedEventHandler”


如何取消订阅/删除相同的事件处理程序

最佳答案

当您使用 Lambda 时,您需要保留它的引用以取消订阅。

试试这个

RoutedEventHandler handler = (sender, e) => MyButtonClick(sender, e, stuff1, stuff2);
myButton.Click += handler;//Subscribe
//Some more code
myButton.Click -= handler;//Unsubscribe

关于c# - 使用自定义参数取消订阅/删除事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19276946/

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