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