RadioButton не проверяется при запуске - PullRequest
0 голосов
/ 28 марта 2019

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

Это код переключателей:

    <GroupBox Grid.Row="0" Margin="10,10,10,10" FontSize="16" 
    FontWeight="Bold">
        <GroupBox.Header>Tipo di Rientro</GroupBox.Header>
        <StackPanel>
            <RadioButton Name="RdBtnExternalEntry" FontSize="12" 
            FontWeight="Normal" GroupName="SelectionType" IsChecked="{Binding 
            Path=CurrentOption, Mode=TwoWay, Converter={StaticResource 
            enumConverter}, ConverterParameter=ExternalEntry}">Entrata da 
            Esterno</RadioButton>

            <RadioButton Name="RdBtnEntryAfterCheck" FontSize="12" 
            FontWeight="Normal" GroupName="SelectionType" IsChecked="{Binding 
            Path=CurrentOption, Mode=TwoWay, Converter={StaticResource 
            enumConverter}, ConverterParameter=EntryAfterCheck}">Rientro dopo 
            visione</RadioButton>

            <RadioButton Name="RdBtnEntryMissingShipping" FontSize="12" 
            FontWeight="Normal" GroupName="SelectionType" IsChecked="{Binding 
            Path=CurrentOption, Mode=TwoWay, Converter={StaticResource 
            enumConverter}, ConverterParameter=EntryMissingShipping}">Rientro 
            per mancata Spedizione</RadioButton>

            <RadioButton Name="RdBtnEntryAfterPicking" FontSize="12" 
            FontWeight="Normal" GroupName="SelectionType" IsChecked="{Binding 
            Path=CurrentOption, Mode=TwoWay, Converter={StaticResource 
            enumConverter}, ConverterParameter=EntryAfterPicking}">Rientro 
            dopo Picking</RadioButton>
        </StackPanel>
    </GroupBox>

Это свойство:

public RadioOptions CurrentOption
        {
            get => _currentOption;
            set
            {
                _currentOption = value;
                NewLoadCommand.RaiseCanExecuteChanged();
                ConfirmCommand.RaiseCanExecuteChanged();
                if (value == RadioOptions.ExternalEntry)
                {
                    _selectedStockUnitCode = PalletToDo;
                    SelectedLoadnumber = LoadToDo;
                    RaisePropertyChanged("SelectedLoadnumber");
                    RaisePropertyChanged("SelectedStockUnitCode");
                }
                else
                {
                    SelectedLoadnumber = "0";
                    RaisePropertyChanged("SelectedLoadnumber");
                }

                RaisePropertyChanged("SelectedStockUnitCodeIsEnabled");
                RaisePropertyChanged("SelectedLoadnumberIsEnabled");
            }
        }

И это конвертер:

public class EnumMatchToBooleanConverter : IValueConverter
    {
        public object Convert(object value, Type targetType,
                              object parameter, CultureInfo culture)
        {
            if (value == null || parameter == null)
                return false;

            string checkValue = value.ToString();
            string targetValue = parameter.ToString();
            return checkValue.Equals(targetValue,
                     StringComparison.InvariantCultureIgnoreCase);
        }

        public object ConvertBack(object value, Type targetType,
                                  object parameter, CultureInfo culture)
        {
            if (value == null || parameter == null)
                return null;

            bool useValue = (bool)value;
            string targetValue = parameter.ToString();
            if (useValue)
                return Enum.Parse(targetType, targetValue);

            return Binding.DoNothing;
        }

    }

это опции радио:

public enum RadioOptions { ExternalEntry, EntryAfterCheck, EntryMissingShipping, EntryAfterPicking }

Я ожидаю, что первый комбинированный список будет проверен в начале программы

1 Ответ

0 голосов
/ 29 марта 2019

Решено! Я по ошибке запустил еще одну копию моего окна, потому что всплывающее окно мешало тому, как xaml управляет переключателями. Я удалил один из istance, а затем он работал нормально.

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