2016-03-18 2 views
0

У меня есть приложение wpf и im, использующее хост winform. В некоторых случаях свойство «SelectedItem» является сложным типом, который имеет свойство из типа «Список». Как я могу узнать из кода, если коллекция изменилась? Или просто знаете, что пользовательский редактор открыт?Как уведомить об изменении коллекции сетки свойств

ответ

2

Вы можете использовать ObservableCollection<T> вместо List, чтобы иметь возможность указывать изменения в содержании списка.

ObservableCollection реализует интерфейсы INotifyCollectionChanged и INotifyPropertyChanged, чтобы архивировать это поведение.

Больше информации ObservableCollection на MSDN:

https://msdn.microsoft.com/de-de/library/ms668604(v=vs.110).aspx

+0

Выбранный объект может быть установлен пользователем пользовательский класс, так что я не могу контролировать тип «коллекции». – Hajaj

1

Если я понимаю, хорошо у вас есть набор элементов, и каждый из них имеет некоторые другие коллекции. Таким образом, вы могли бы также рассмотреть возможность использования BindingList в качестве базовой коллекции - она ​​реализует IRaiseItemChangedEvents - Indicates whether a class converts property change events to System.ComponentModel.IBindingList.ListChanged

+0

Выбранный объект может быть пользовательским классом, поэтому я не могу управлять типом коллекции. – Hajaj