Как привязать зарегистрированное событие для радиопроизводительного кнопки в WPF?

StackOverflow https://stackoverflow.com/questions/2543280

  •  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 ..." ;-)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top