#c# #wpf #combobox
#c# #wpf #выпадающий список
Вопрос:
В моем приложении у меня есть выпадающий список. В качестве элемента используется имя (строка) и идентификатор (int)
Я написал некоторый код, который обновляет отображаемое при изменении значения элемента.
((Item)(joinedFilesCombobox.SelectedItem)).PictureID = 0;
joinedFilesCombobox.Items.Refresh();
С помощью этого кода, когда я нажимаю на значок выпадающего списка выпадающего списка, мой элемент правильно обновляется в списке, но не текущий выбранный элемент. Чтобы правильно обновить текущий отображаемый элемент, который я только что изменил, мне нужно сделать небольшую хитрость :
int curr = joinedFilesCombobox.SelectedIndex;
joinedFilesCombobox.SelectedIndex = curr 1;
joinedFilesCombobox.SelectedIndex = curr;
Выполнение этого обновляет представление текущего выбранного элемента.
Но это решение не является чистым. Есть ли более чистый способ сделать это?
Комментарии:
1. Просто, чтобы я правильно понял, что вы делаете, у вас есть поле со списком, затем, когда вы меняете выбранный элемент в поле со списком, данные отображаются в списке или что-то в этом роде?
2. Выпадающий список состоит из отображаемого элемента и списка, который появляется при нажатии на стрелку вправо. Когда я вношу изменения в элемент, его отображение в списке обновляется с помощью функции обновления (), но если это текущий выбранный элемент, его отображение в поле не обновляется. Это понятнее?
Ответ №1:
Чтобы это работало правильно, вы Item
должны реализовать INotifyPropertyChanged
интерфейс и вызвать PropertyChanged
событие в параметре PictureID
свойства.