Comment puis-je mieux gérer WPF boutons radio?

J'ai quelques composants radiobutton dans mon XAML...

<StackPanel>
    <RadioButton Name="RadioButton1" GroupName="Buttons" Click="ButtonsChecked" IsChecked="True">One</RadioButton>
    <RadioButton Name="RadioButton2" GroupName="Buttons" Click="ButtonsChecked">Two</RadioButton>
    <RadioButton Name="RadioButton3" GroupName="Buttons" Click="ButtonsChecked">Three</RadioButton>
</StackPanel>

Et je peux gérer leurs événements de clic dans le code Visual Basic. Cela fonctionne...

 Privé Sous ButtonsChecked(ByVal sender as System.Objet, _ 
ByVal e as System.De Windows.RoutedEventArgs) 
Sélectionnez Cas CType(expéditeur, RadioButton).Nom 
Cas "RadioButton1" 
"Faire quelque chose d'un 
Quitter Sélectionnez 
Cas "RadioButton2" 
"Faire quelque chose à deux 
Quitter Sélectionnez 
Cas "RadioButton3" 
"Faire quelque chose trois 
Quitter Sélectionnez 
End Select 
End Sub 

Mais j'aimerais l'améliorer. Ce code ne fonctionne pas...

<StackPanel>
    <RadioButton Name="RadioButton1" GroupName="Buttons" Click="ButtonsChecked" Command="one" IsChecked="True">One</RadioButton>
    <RadioButton Name="RadioButton2" GroupName="Buttons" Click="ButtonsChecked" Command="two">Two</RadioButton>
    <RadioButton Name="RadioButton3" GroupName="Buttons" Click="ButtonsChecked" Command="three">Three</RadioButton>
</StackPanel>
 Privé Sous ButtonsChecked(ByVal sender as System.Objet, _ 
ByVal e as System.De Windows.RoutedEventArgs) 
Sélectionnez Cas CType(expéditeur, RadioButton).Commande 
Cas "un" 
"Faire quelque chose d'un 
Quitter Sélectionnez 
Cas de "deux" 
"Faire quelque chose à deux 
Quitter Sélectionnez 
Cas "trois" 
"Faire quelque chose trois 
Quitter Sélectionnez 
End Select 
End Sub 

Dans mon XAML-je obtenir un bleu enchevêtrées souligner dans la Commande= attributs et cette astuce...

'CommandValueSerializer' ValueSerializer impossible de convertir de 'Système.Chaîne'.

Dans mon VB-je obtenir un vert enchevêtrées souligner dans la Sélectionnez Cas ligne et cet avertissement...

Des erreurs d'exécution peuvent se produire lors de la conversion du Système".De Windows.D'entrée.ICommand' à 'String'.

Encore mieux serait d'utiliser Enum type de commandes avec plein Intellisense et les erreurs de compilation plutôt que des erreurs d'exécution, en cas d'erreur de frappe. Comment puis-je améliorer cela?

OriginalL'auteur Zack Peterson | 2008-10-31