Frage

Ich verwende das folgende Markup in 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>

Obwohl dies gut funktioniert, wenn ich den Code ausführe, erhalte ich den folgenden Fehler im Designerfenster von VS 2008:

Wert 'Radiobutton.Conted' kann nicht der Eigenschaft 'RouteDevent' zugewiesen werden. Ungültiger Ereignisname.

Irgendeine Idee warum und wie kann ich das beheben?

War es hilfreich?

Lösung

RadioButton ist ein ToggleButton. Der Designer unterstützt die Anhang ToggleButton Eigenschaften, aber nicht die RadioButton (außer in a RadioButton Tag natürlich).

Sie müssen den Klassennamen verwenden, der die Eigenschaft/das Ereignis definiert, damit der Designer ihn akzeptiert (dachte, es gibt keinen Unterschied zur Laufzeit, da seitdem RadioButton Ist ein ToggleButton Wie gesagt, aber der Designer ist kein echter Compiler).

Verwenden Sie also in Ihrem Fall <EventTrigger RoutedEvent="ToggleButton.Checked ..." ;-)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top