Sch*_*Box 2 c# wpf events event-handling visual-studio
Event Handler
我使用以下代码订阅/创建自定义:
myButton.Click += (sender, e) => MyButtonClick(sender, e, stuff1, stuff2);
Run Code Online (Sandbox Code Playgroud)
我想取消订阅/删除并尝试如下:
myButton.Click += MyButtonClick;
Run Code Online (Sandbox Code Playgroud)
但抛出以下错误:
No overload for 'MyButtonClick' matches delegate 'System.Windows.RoutedEventHandler'
像这样:
myButton.Click += MyButtonClick(sender, e, stuff1, stuff2);
Run Code Online (Sandbox Code Playgroud)
但抛出以下错误:
Cannot implicitly convert type 'void' to 'System.Windows.RoutedEventHandler'
我如何取消订阅/删除它Event Handler
?
当您使用时,Lambda
您需要保留它的参考以取消订阅。
尝试这个
RoutedEventHandler handler = (sender, e) => MyButtonClick(sender, e, stuff1, stuff2);
myButton.Click += handler;//Subscribe
//Some more code
myButton.Click -= handler;//Unsubscribe
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2824 次 |
最近记录: |