[UWP]: поле со списком сворачивается только при первой попытке выбрать параметр.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 [UWP]: поле со списком сворачивается только при первой попытке выбрать параметр.

Сообщение Anonymous »

Я использую ComboBox, в раскрывающемся списке которого есть 2 параметра. Когда пользователь открывает приложение UWP, параметром по умолчанию является первый вариант в поле со списком. Когда пользователь пытается щелкнуть поле со списком для выбранного варианта 2, поле со списком быстро сворачивается, не позволяя пользователю щелкнуть второй вариант. Пользователю необходимо еще раз щелкнуть поле со списком, чтобы выбрать второй вариант.
Кроме того, иногда пользователи не могут выбрать второй вариант в поле со списком. р> В модели представления

Код: Выделить всё

public sealed class A
{

public A
{
this.ComboBoxOptions= new ObservableCollection
{
new HelperClass{ Name = "Apples",  IsEnabled = true },
new HelperClass{ Name = "Bananas", IsEnabled = true },
};
this.selectedOption= this.ComboBoxOptions[0]; //Selects first option in dropdown as default
this.foo();
}

public ObservableCollection ComboBoxOptions{ get; set; }

public HelperClass SelectedOption
{
get => this.selectedOption;
set => this.SetProperty(ref this.selectedOption, value);
}

public void ComboBoxSelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (e.RemovedItems.Count > 0 && e.RemovedItems is HelperClass previousOption && previousOption.Name == selectedOption.Name)
{
return;
}

if (selectedOption.IsEnabled)
{
this.SelectedDuration = selectedOption;
}
else
{
comboBox.SelectedItem = e.RemovedItems.FirstOrDefault(); // Select 1st option
}
}

Void foo()
{
//Check if option 2 needs to be grayed out.
(IsGrayedOut)
{
this.ComboBoxOptions[1].IsEnabled = false;
}
else
{
this.SelectedOption = ComboBoxOptions[0]/ ComboBoxOption[1]; // Based on logic
}
}

}

I tried handling this problem by removing code for SelectionChanged event and using

public HelperClass SelectedOption
{
get => this.selectedOption;
set => this.SetProperty(ref this.selectedOption, value, () => this.Bar());
}
Это помогло уменьшить вероятность свертывания поля со списком, но нарушает логику в случае, если второй вариант необходимо сделать серым. Я попытался обработать логику серого цвета в this.Bar(), но этот параметр все еще доступен для выбора. Как мне исправить свертывание ComboBox, не нарушая логику второго варианта, выделенного серым цветом?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -time-only
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»