Связывание радиокнопки с перечислением в серебряном свете - PullRequest
0 голосов
/ 30 августа 2011

Я использую этот вопрос / ответ в качестве исходного кода для моей текущей потребности.Он работает нормально, но я могу выбрать радиокнопку только один раз.Вот мой код:

<StackPanel Orientation="Vertical" Grid.Column="0"  >
    <sdk:Label Content="Materiale:" Margin="0,0,0,5" />
    <RadioButton GroupName="Materiale" Margin="0,0,0,2"  
                    Content="All" 
                    IsChecked="{Binding Path=Materiale, 
                                Mode=TwoWay,
                                Converter={StaticResource EnumToVisibilityConverter},
                                ConverterParameter=All}"
                    Command="{Binding CambioMaterialeCommand}" />
    <RadioButton GroupName="Materiale" Margin="0,0,0,2"  
                    Content="RotabiliSingoli" 
                    IsChecked="{Binding Path=Materiale,
                                Mode=TwoWay,
                                Converter={StaticResource EnumToVisibilityConverter},
                                ConverterParameter=RotabiliSingoli}"
                    Command="{Binding CambioMaterialeCommand}" />
    <RadioButton GroupName="Materiale" Margin="0,0,0,2"  
                    Content="Treni" 
                    IsChecked="{Binding Path=Materiale,
                                Mode=TwoWay,
                                Converter={StaticResource EnumToVisibilityConverter},
                                ConverterParameter=Treni}"
                    Command="{Binding CambioMaterialeCommand}" />
    <RadioButton GroupName="Materiale" Margin="0,0,0,2"  
                    Content="CarrozzeLocomotive" 
                    IsChecked="{Binding Path=Materiale, 
                                Mode=TwoWay, 
                                Converter={StaticResource EnumToVisibilityConverter}, 
                                ConverterParameter=CarrozzeLocomotive}"
                    Command="{Binding CambioMaterialeCommand}"/>
</StackPanel>

В ViewModel у меня есть:

public void CambioMateriale()
        {
            switch (Materiale)
            {
                case E_Materiale.All:
                    IsVisibleLocomotivaCarozza = false;
                    IsVisibleTrenoPartenza = false;
                    break;
                case E_Materiale.RotabiliSingoli:
                    IsVisibleLocomotivaCarozza = false;
                    IsVisibleTrenoPartenza = false;
                    break;
                case E_Materiale.Treni:
                    IsVisibleLocomotivaCarozza = false;
                    IsVisibleTrenoPartenza = true;
                    break;
                case E_Materiale.CarrozzeLocomotive:
                    IsVisibleLocomotivaCarozza = true;
                    IsVisibleTrenoPartenza = false;
                    break;
            }

        }

Когда я ставлю точку останова на коммутаторе, я вижу изменение значения Materiale при переходе с одной радиопереключателядругой, но если я попытаюсь повторно выбрать одну радиокнопку, которую я уже выбрал, это значение не изменится и останется на том значении радиокнопки, которое было выбрано ранее.

Может ли кто-нибудь объяснить мне, что происходит?* Спасибо за вашу помощь,

[Редактировать]

вот мой конвертер enum:

   public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        string parameterString = parameter as string;
        if (parameterString == null)
            return DependencyProperty.UnsetValue;

        if (Enum.IsDefined(value.GetType(), value) == false)
            return DependencyProperty.UnsetValue;

        object parameterValue = Enum.Parse(value.GetType(), parameterString, true);

        return parameterValue.Equals(value);
    }


    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return value.Equals(true) ? parameter : DependencyProperty.UnsetValue;
    }

[/ EDIT]

1 Ответ

1 голос
/ 30 августа 2011

Вот ссылка на статью, которая может помочь вам легко выполнить задачу или решить вашу проблему: Связывание радиокнопок с перечислением в Silverlight

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...