Wie binden Sie das geprüfte Ereignis für das Optionsfeld in WPF?
-
23-09-2019 - |
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?
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 ..."
;-)