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

Отдельные события для проверенного и непроверенного состояния WPF CheckBox: Почему?

  • Есть ли одно событие, например Changed, которое я могу использовать для обработки обоих событий вместе?

  • Почему они разделены вот так?
    Это потому, что для одного события для обоих потребуется, чтобы вы ссылались на элемент управления по имени, который вам нужно указать в XAML, и это увеличит беспорядок?

4b9b3361

Ответ 1

  • Не напрямую. Однако вы можете использовать один и тот же обработчик событий для обоих и запросить свойство IsChecked параметра sender (после того, как он, конечно, добавит его в CheckBox или ToggleButton).
  • два события необходимы для специфичной для wpf технологии, такой как раскадровка, EventTriggers и тому подобное. EventTriggers не может различать состояние, только по событию, поэтому необходимы два разных события.

В общем случае: я вообще не использовал бы события - я бы привязал свойство IsChecked к соответствующему свойству на вашем ViewModel, сохраняя минимальный код-код (в идеале не пользовательский код на все).

Ответ 2

Разделение дает больше детализации для тех, кто в нем нуждается (не может пострадать для тех, кто этого не делает), и если вы хотите, вы можете обрабатывать оба события одним обработчиком.

 <CheckBox Content="CheckBox" Name="checkBox1" Checked="checkBox1_changed" Unchecked="checkBox1_changed" />

Ответ 3

Например, чтобы запустить раскадровку, когда она была отмечена, и остановите ее при снятии флажка.