Как привязать зарегистрированное событие для радиопроизводительного кнопки в WPF?
-
23-09-2019 - |
Вопрос
Я использую следующую разметку в WPF:
<StackPanel.Triggers>
<EventTrigger RoutedEvent="RadioButton.Checked" SourceName="xmlRadioButton">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource ShowXmlPanel}"/>
</EventTrigger.Actions>
</EventTrigger>
<EventTrigger RoutedEvent="RadioButton.Checked" SourceName="adiRadioButton">
<EventTrigger.Actions>
<BeginStoryboard Storyboard="{StaticResource ShowAdiPanel}"/>
</EventTrigger.Actions>
</EventTrigger>
</StackPanel.Triggers>
Хотя это работает нормально, когда я запускаю код, я получаю следующую ошибку в окне дизайнера VS 2008:
Значение 'radiobutton.cecked' не может быть назначено на свойство «RoutedEvent». Неверное название события.
Есть идеи, почему, и как я могу это исправить?
Решение
RadioButton
это ToggleButton
. Анкет Дизайнер поддерживает прикрепленное ToggleButton
свойства, но не RadioButton
те (кроме как в RadioButton
тег конечно).
Вам необходимо использовать имя класса, которое определяет свойство/событие для дизайнера, чтобы принять его (подумал, что нет разницы в среде выполнения, поскольку RadioButton
Это ToggleButton
Как я уже сказал, но дизайнер не настоящий компилятор).
Итак, в вашем случае используйте <EventTrigger RoutedEvent="ToggleButton.Checked ..."
;-)