Подтвердить что ты не робот

Как установить checkbox.isChecked без повышения события

Есть ли способ проверить CheckBox без запуска кода, связанного с его проверкой? Просто для визуального внешнего вида.

Edit:

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

Представьте, что я хочу установить normalCheckBox.IsChecked=true;, но не увеличивая событие. Возможно ли это?

4b9b3361

Ответ 1

Один из способов - отсоединить обработчик событий, установить свойство IsChecked, а затем снова подключить его.

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

Ответ 2

Вы можете использовать событие Click вместо Checked и использовать состояние флажка, как показано ниже:

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

ПРИМЕЧАНИЕ. Часть (bool) необходима, поскольку IsChecked возвращает тип bool?, который может быть нулевым.

Это событие не будет поднято с помощью normalCheck.IsChecked = true; Он будет поднят только щелчком.

Ответ 3

Если вы ссылаетесь на изменение статуса проверки без повышения события "_Checked", вам, вероятно, придется переопределить обработчик события с параметром, чтобы сообщить ему пропустить событие или нет.

Связанный ответ: Измените значение флажка без повышения события