У меня есть контейнер, такой как listbox, combobox и т. Д., Что его свойство ItemsSource привязано к наблюдаемой коллекции в моей модели представления. Когда я пытаюсь добавить/удалить элементы из коллекции с помощью какого-либо метода в моей виртуальной машине, он не будет отражен в пользовательском интерфейсе, Единственный способ, которым пользовательский интерфейс действительно обновит, - это если я присвою коллекции новое значение (то есть другое сбор с соответствующими данными), что заставляет его перевязывать всю коллекцию.WPF MVVM ListBox/ComboBox ItemsSource не обновляет пользовательский интерфейс из ViewModel
Возможно, я отсутствует/не понимаю что-то о проблеме с привязкой к коллекции, так или иначе, если у кого-то есть решение/хорошее объяснение/оба варианта будут замечательными. вот пример из моего зрения (в данном случае сво ListBox)
<ListBox
Grid.Row="9"
Grid.Column="1"
Grid.ColumnSpan="3"
Width="200"
Height="200"
ItemsSource="{Binding PreSavedRecordingScheduleList,UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding SelectedPreSavedRecordingSchedule,UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Display"/>
и вот мой ViewModel:
private ObservableCollection<ScheduledRecordingObject> m_PreSavedRecordingScheduleList;
PreSavedRecordingScheduleList = new ObservableCollection<ScheduledRecordingObject>();
public ObservableCollection<ScheduledRecordingObject> PreSavedRecordingScheduleList
{
get
{
return m_PreSavedRecordingScheduleList;
}
set
{
m_PreSavedRecordingScheduleList = value;
OnPropertyChanged("PreSavedRecordingScheduleList");
}
}
ScheduledRecordingObject также реализует INotifyPropertyChanged.
Покажите свои попытки кода – Sheridan
только для лучшего понимания - начальные значения в вашей коллекции указаны в вашем списке? – blindmeis
Да, начальные значения показаны. я могу, например, добавить несколько элементов в C'tor, и они будут видны пользователю, но любое изменение, которое я делаю после (добавить/удалить/очистить и т. д.), не обновляет UI – user1531186