У меня есть три следующих флажка:
CheckBox chk1=new CheckBox();
CheckBox chk2=new CheckBox();
CheckBox chk3=new CheckBox();
Каждый из них имеет разные EventHandlers:
chk1.CheckChanged+=chk1_CheckChanged;
chk2.CheckChanged+=chk2_CheckChanged;
chk3.CheckChanged+=chk3_CheckChanged;
Теперь я хочу сделать некоторые интересные вещи, которые требуют, чтобы события были отключены временно. Это код, который я собираюсь использовать:
foreach (var checkbox in Controls.OfType<CheckBox>()) {
var currentEvent=checkBox.CheckChanged; // Should contain chk1_CheckChanged , ... etc.
checkBox.CheckChanged -=currentEvent;
checkBox.IsChecked=true;
checkBox.CheckChanged +=currentEvent;
}
Это работает , а не , потому что я не могу просто присвоить EventHandler переменной. Но как сделать что-то вроде динамического выключения / выключения события c?
(я знаю, что могу использовать один и тот же eventHandler для всех трех флажков и просто отключить его, но действия этих трех совсем другой.)