Как связать проверенное событие для переключателя в WPF? - PullRequest
6 голосов
/ 30 марта 2010

Я использую следующую разметку в 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.Checked' не может быть присваивается свойству 'RoutedEvent'. Неверное имя события.

Есть идеи, почему и как я могу это исправить?

1 Ответ

3 голосов
/ 30 марта 2010

RadioButton является ToggleButton. Дизайнер поддерживает вложенные свойства ToggleButton, но не RadioButton (за исключением, конечно, тега RadioButton).

Вам нужно использовать имя класса, которое определяет свойство / событие для дизайнера, чтобы принять его (хотя во время выполнения нет никакой разницы, поскольку RadioButton, как я уже сказал, ToggleButton, но дизайнер не является настоящий компилятор).

Так что в вашем случае используйте <EventTrigger RoutedEvent="ToggleButton.Checked ..."; -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...