WPF (c #) combobox обновление выбранного отображаемого элемента

#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 свойства.