2010-03-30 14 views
6

Używam następujący znaczników w WPF:Jak powiązać zaznaczone zdarzenie z przyciskiem radiowym w 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> 

Choć to działa dobrze, gdy uruchamiam kod, pojawia się następujący komunikat o błędzie w oknie projektanta VS 2008:

wartość „RadioButton .Checked "nie może być przypisany do właściwości" RoutedEvent ". Nieprawidłowa nazwa zdarzenia.

Każdy pomysł, dlaczego i jak mogę to naprawić?

Odpowiedz

3

to ToggleButton. Projektant obsługuje dołączone właściwości ToggleButton, ale nie te RadioButton (z wyjątkiem znacznika RadioButton).

Musisz użyć nazwy klasy, która definiuje właściwość/zdarzenie, aby projektant ją zaakceptował (uważam, że nie ma różnicy w czasie wykonywania, ponieważ RadioButton IS jest ToggleButton, jak już powiedziałem, ale projektant nie jest prawdziwym kompilatorem) .

W twoim przypadku użyj <EventTrigger RoutedEvent="ToggleButton.Checked ..." ;-)