我有一些面板在创建时被委派为可点击:
int z2 = z;
PicBx[z].Click += delegate { clicked(z2, null); };
如果程序需要它,我希望能够删除它。我尝试使用:
int z2 = z;
PicBx[z].Click -= delegate { clicked(z2, null); };
但它没有用。有没有办法从中删除可点击的委托?
答案 0 :(得分:10)
您无法取消订阅匿名委托,您需要继续引用委托
var myClickDelegate = (RoutedEventHandler)delegate { clicked(z2, null); };
PicBx[z].Click += myClickDelegate;
...
PicBx[z].Click -= myClickDelegate;
或创建命名函数
希望这有帮助