Wie gehe ich am besten mit WPF-Optionsfeldern um?

Ich habe einige RadioButtons in meinem 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>

Und ich kann ihre Klickereignisse im Visual Basic-Code verarbeiten. Das funktioniert...

    Private Sub ButtonsChecked(ByVal sender As System.Object, _
                               ByVal e As System.Windows.RoutedEventArgs)
        Select Case CType(sender, RadioButton).Name
            Case "RadioButton1"
                'Do something one
                Exit Select
            Case "RadioButton2"
                'Do something two
                Exit Select
            Case "RadioButton3"
                'Do something three
                Exit Select
        End Select
    End Sub

Aber ich würde es gerne verbessern. Dieser Code schlägt fehl ...

<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>
    Private Sub ButtonsChecked(ByVal sender As System.Object, _
                               ByVal e As System.Windows.RoutedEventArgs)
        Select Case CType(sender, RadioButton).Command
            Case "one"
                'Do something one
                Exit Select
            Case "two"
                'Do something two
                Exit Select
            Case "three"
                'Do something three
                Exit Select
        End Select
    End Sub

In meinem XAML bekomme ich eine blaue, schnörkellose Unterstreichung auf demBefehl = Attribute und dieser Tipp ...

'CommandValueSerializer' ValueSerializer cannot convert from 'System.String'.

In meinem VB bekomme ich eine grüne, schnörkellose Unterstreichung auf demFall auswählen Linie und diese Warnung ...

Runtime errors might occur when converting 'System.Windows.Input.ICommand' to 'String'.

Noch besser wäre es, Enum-Typ-Befehle mit vollständigen Intellisense- und Kompilierungsfehlern anstelle von Laufzeitfehlern bei Tippfehlern zu verwenden. Wie kann ich das verbessern?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage