Мне нужно реализовать коллекцию со специальными возможностями. Кроме того, я хочу связать эту коллекцию с ListView, поэтому я закончил со следующим кодом (я опустил некоторые методы, чтобы сделать его короче здесь, на форуме):
public class myCollection<T> : INotifyCollectionChanged
{
private Collection<T> collection = new Collection<T>();
public event NotifyCollectionChangedEventHandler CollectionChanged;
public void Add(T item)
{
collection.Insert(collection.Count, item);
OnCollectionChange(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Add, item));
}
protected virtual void OnCollectionChange(NotifyCollectionChangedEventArgs e)
{
if (CollectionChanged != null)
CollectionChanged(this, e);
}
}
Я хотел проверить это с помощью простого класса данных:
public class Person
{
public string GivenName { get; set; }
public string SurName { get; set; }
}
Итак, я создал экземпляр класса myCollection следующим образом:
myCollection<Person> _PersonCollection = new myCollection<Person>();
public myCollection<Person> PersonCollection
{ get { return _PersonCollection; } }
Проблема в том, что ListView не обновляется при обновлении коллекции, хотя я реализовал интерфейс INotifyCollectionChanged.
Я знаю, что моя привязка в порядке (в XAML), потому что, когда я использую класс ObservableCollecion вместо класса myCollecion, вот так:
ObservableCollection<Person> _PersonCollection = new ObservableCollection<Person>();
public ObservableCollection<Person> PersonCollection
{ get { return _PersonCollection; } }
Обновления ListView
В чем проблема?