¿Cómo puedo manejar mejor los botones de radio WPF?
Tengo algunos RadioButtons en mi 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>
Y puedo manejar sus eventos de clic en el código de Visual Basic. Esto funciona...
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
Pero me gustaría mejorarlo. Este código falla ...
<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
En mi XAML obtengo un subrayado azul ondulado en elComando = atributos y este consejo ...
'CommandValueSerializer' ValueSerializer cannot convert from 'System.String'.
En mi VB obtengo un subrayado verde y ondulado en elSeleccione el caso línea y esta advertencia ...
Runtime errors might occur when converting 'System.Windows.Input.ICommand' to 'String'.
Aún mejor sería usar comandos de tipo Enum con Intellisense completo y compilar errores en lugar de errores de tiempo de ejecución en caso de errores tipográficos. ¿Cómo puedo mejorar esto?