如何设置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值而不引发事件