У меня есть приложение wpf и im, использующее хост winform. В некоторых случаях свойство «SelectedItem» является сложным типом, который имеет свойство из типа «Список». Как я могу узнать из кода, если коллекция изменилась? Или просто знаете, что пользовательский редактор открыт?Как уведомить об изменении коллекции сетки свойств
ответ
Вы можете использовать ObservableCollection<T>
вместо List
, чтобы иметь возможность указывать изменения в содержании списка.
ObservableCollection реализует интерфейсы INotifyCollectionChanged
и INotifyPropertyChanged
, чтобы архивировать это поведение.
Больше информации ObservableCollection на MSDN:
https://msdn.microsoft.com/de-de/library/ms668604(v=vs.110).aspx
Если я понимаю, хорошо у вас есть набор элементов, и каждый из них имеет некоторые другие коллекции. Таким образом, вы могли бы также рассмотреть возможность использования BindingList в качестве базовой коллекции - она реализует IRaiseItemChangedEvents
- Indicates whether a class converts property change events to System.ComponentModel.IBindingList.ListChanged
Выбранный объект может быть пользовательским классом, поэтому я не могу управлять типом коллекции. – Hajaj
Выбранный объект может быть установлен пользователем пользовательский класс, так что я не могу контролировать тип «коллекции». – Hajaj