-
Есть ли одно событие, например
Changed
, которое я могу использовать для обработки обоих событий вместе? -
Почему они разделены вот так?
Это потому, что для одного события для обоих потребуется, чтобы вы ссылались на элемент управления по имени, который вам нужно указать в XAML, и это увеличит беспорядок?
Отдельные события для проверенного и непроверенного состояния WPF CheckBox: Почему?
Ответ 1
- Не напрямую. Однако вы можете использовать один и тот же обработчик событий для обоих и запросить свойство
IsChecked
параметраsender
(после того, как он, конечно, добавит его вCheckBox
илиToggleButton
). - два события необходимы для специфичной для wpf технологии, такой как раскадровка,
EventTriggers
и тому подобное.EventTriggers
не может различать состояние, только по событию, поэтому необходимы два разных события.
В общем случае: я вообще не использовал бы события - я бы привязал свойство IsChecked
к соответствующему свойству на вашем ViewModel
, сохраняя минимальный код-код (в идеале не пользовательский код на все).
Ответ 2
Разделение дает больше детализации для тех, кто в нем нуждается (не может пострадать для тех, кто этого не делает), и если вы хотите, вы можете обрабатывать оба события одним обработчиком.
<CheckBox Content="CheckBox" Name="checkBox1" Checked="checkBox1_changed" Unchecked="checkBox1_changed" />
Ответ 3
Например, чтобы запустить раскадровку, когда она была отмечена, и остановите ее при снятии флажка.