有没有办法检查CheckBox
而不运行与检查相关的代码?只是为了视觉外观。
编辑:
private void normalCheck_Checked(object sender, RoutedEventArgs e)
{
normal();
}
想象一下,我想设置normalCheckBox.IsChecked=true;
但不提高事件。这可能吗?
答案 0 :(得分:40)
一种方法是分离事件处理程序,设置IsChecked
属性,然后重新附加它。
myCheckbox.Checked -= myCheckbox_Checked;
myCheckbox.IsChecked = true;
myCheckbox.Checked += myCheckbox_Checked;
答案 1 :(得分:7)
您可以使用Click
事件代替Checked
,并使用如下所示的复选框状态:
private void normalCheck_Click(object sender, RoutedEventArgs e)
{
if (normalCheck.IsChecked ?? false) { normal(); }
}
然后,使用normalCheck.IsChecked = true;
不会引发此事件。它只会通过点击提出。
注意:空合并运算符(??
)是必需的,因为IsChecked
返回bool?
类型,可以为null。
答案 2 :(得分:0)
如果你指的是在不提出“_Checked”事件的情况下更改已检查状态,则可能必须使用参数覆盖事件处理程序,以告诉它跳过事件。
答案 3 :(得分:0)
对于未选中的事件:(基于@keyboardP的解决方案)
myCheckbox.Unchecked -= myCheckbox_Unchecked;
myCheckbox.IsChecked = false;
myCheckbox.Unchecked += myCheckbox_Unchecked;