如何设置checkbox.isChecked而不引发事件

有没有办法检查CheckBox而不运行与检查相关的代码? 只是为了视觉外观。

编辑:

 private void normalCheck_Checked(object sender, RoutedEventArgs e) { normal(); } 

想象一下,我想设置normalCheckBox.IsChecked=true; 但没有举起活动。 那可能吗?

一种方法是分离事件处理程序,设置IsChecked属性,然后重新附加它。

 myCheckbox.Checked -= myCheckbox_Checked; myCheckbox.IsChecked = true; myCheckbox.Checked += myCheckbox_Checked; 

您可以使用Click事件而不是Checked并使用如下所示的复选框状态:

 private void normalCheck_Click(object sender, RoutedEventArgs e) { if (normalCheck.IsChecked ?? false) { normal(); } } 

然后,使用normalCheck.IsChecked = true;不会引发此事件normalCheck.IsChecked = true; 。 它只会通过点击提出。

注意:null-coalescing运算符( ?? )是必要的,因为IsChecked返回一个bool? 类型可以为null。

如果您指的是在不引发“_Checked”事件的情况下更改已检查状态,则可能必须使用参数覆盖事件处理程序以告知它跳过事件。

相关回答: 更改Checkbox值而不引发事件