У меня есть вопрос о классе, который я создал, который похож на ObserverableCollection.Мой класс в основном имеет те же функции, что и он, но я добавляю в него некоторые функции автоматической сортировки при добавлении элементов в Список.Мой вопрос заключается в том, что мой класс реализует интерфейс INotifyCollectionChanged, так что ListView, который отображает мою коллекцию, уведомляется об изменении коллекции (по крайней мере, я так думал).Каждый раз, когда я добавляю или удаляю из коллекции, я уведомляю, что коллекция изменилась, но ListView не отображает изменения.Так я не понял, что делает INotifyCollectionChanged?Должен ли я использовать вместо этого INotifyPropertyChanged?Любая помощь по этому вопросу была бы отличной!
Вот важные части моего класса:
public class AscendingObservableCollection<T> : ICollection<T>, IEnumerable<T>, INotifyCollectionChanged
{
public event NotifyCollectionChangedEventHandler CollectionChanged;
...
protected void OnCollectionChanged()
{
CollectionChanged.Invoke(this, new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Reset));
}
}
Я вызываю OnCollectionChanged () всякий раз, когда коллекция изменяется (добавление / удаление элемента).Я использую NotifyCollectionChangedAction.Reset для всех изменений, поскольку моя коллекция является LinkedList, а конструктору NotifyCollectionChangedEventArgs требуется индекс для флагов NotifyCollectionChangedAction.Add / Remove, которых LinkedList обычно не имеет.
Мой ListView, который использует коллекцию, использует привязку данных в свойстве ItemSource для доступа к коллекции.
Если вам нужно больше кода, сообщите мне.