Досадно, IList<T>
- это один из тех интерфейсов, который не реализует его неуниверсальный аналог IList
.
Если вы можете найти способ передать List<T>
вместо IList<T>
(или другой тип, который реализует IList
, а также IList<T>
, такой как ObservableCollection<T>
), это будет проще всего.Это может означать изменение вашего приложения так, чтобы вы передавали List<T>
или что-то еще, а не IList<T>
.
В противном случае вам, возможно, придется создать новый List<T>
, используя элементы IList<T>
и передать это (то есть myList.ToList()
).Обратите внимание, что это означает, что вы создали копию своего списка, и поэтому изменения в оригинале не будут отражены в копии.В частности, ListCollectionView
проверяет, реализует ли исходная коллекция INotifyCollectionChanged
, и подписывается на измененные события коллекции, если это так: это, очевидно, не будет работать, если вы создадите копию своего списка.