public ItemsSourceView(object source) { if (source == null) { throw new ArgumentNullException("Argument 'source' is null."); } var list = source as IList; if (list != null) { m_vector = list; ListenToCollectionChanges(); } else { var enumerable = source as IEnumerable; if (enumerable != null) { m_vector = WrapIterable(enumerable); } throw new ArgumentException("Argument 'source' is not a supported vector."); } m_uniqueIdMaping = source as IKeyIndexMapping; }
public ItemsSourceView(object source) { if (source == null) { throw new ArgumentNullException("Argument 'source' is null."); } if (source is IList <object> vector) { m_vector = vector; ListenToCollectionChanges(vector); } else { // The bindable interop interface are abi compatible with the corresponding // WinRT interfaces. if (source is _IBindableVector bindableVector) // IList { m_vector = ListAdapter.ToGeneric(bindableVector); ListenToCollectionChanges(bindableVector); } else if (source is IReadOnlyList <object> readOnlyList) { m_vectorView = readOnlyList; ListenToCollectionChanges(readOnlyList); } else { if (source is IEnumerable <object> iterable) { m_vector = WrapIterable(iterable); } else { if (source is _IBindableIterable bindableIterable) { m_vector = WrapIterable(bindableIterable); } else { throw new ArgumentException("Argument 'source' is not a supported vector."); } } } } m_uniqueIdMaping = source as IKeyIndexMapping; }