Я создаю приложение, используя шаблон MVVM, и где-то у меня есть представление, которое содержит ComboBox.
<Controls:SettingsComboBox x:Name="Setting"
SelectedIndex="{Binding SteeringIndex, Mode=TwoWay}"
IsEnabled="{Binding SteerAttached, Mode=TwoWay}">
<ComboBoxItem Content="{Binding Path=on, Source={x:Static Localization:CultureResources.ObjectDataProvider}}"/>
<ComboBoxItem Content="{Binding Path=off, Source={x:Static Localization:CultureResources.ObjectDataProvider}}"/>
</Controls:SettingsComboBox>
Таким образом, SelectedIndex
и IsEnabled
связаны с моделью представления, которая извлекает значения из файла настроек или получает его из внешнего события.
Если SelectedIndex
равно 0 (включено), а IsEnabled
установлено в значение false, все в порядке. Если SelectedIndex
равно 1 (выкл.), А IsEnabled
установлено в значение false, то SelectedIndex
каким-то образом устанавливается в -1, что приводит к появлению пустого поля со списком.
Почему это происходит и как я могу обойти это? Я могу установить SelectedIndex
обратно, когда получаю событие, чтобы изменить свойство IsEnabled
, но это все еще оставляет и пустой комбинированный список, когда он отключен, так что на самом деле это не считается решением.