Как мне лучше всего справиться с переключателями 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 и ошибками компиляции, а не ошибки времени выполнения в случае опечаток. Как я могу улучшить это?