Как мне лучше всего справиться с переключателями WPF?

У меня есть несколько RadioButtons в моем 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>

И я могу обрабатывать их события нажатия в коде Visual Basic. Это работает...

    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

Но я хотел бы улучшить это. Этот код не работает ...

<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

В моем XAML я получаю синие волнистые подчеркивания наCommand = атрибуты и этот совет ...

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

В моем VB я получаю зеленое волнистое подчеркивание наВыберите дело линия и это предупреждение ...

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

Еще лучше было бы использовать команды типа Enum с полным Intellisense и ошибками компиляции, а не ошибки времени выполнения в случае опечаток. Как я могу улучшить это?

Ответы на вопрос(2)

Ваш ответ на вопрос