[]
        
(Showing Draft Content)

C1.LiveLinq.Collections.IndexedCollection-1

IndexedCollection<T> Class

Data collection class recommended for use in LiveLinq to Objects.

Inheritance
IndexedCollection<T>
Namespace: C1.LiveLinq.Collections
Assembly: C1.LiveLinq.4.8.dll
Syntax
public class IndexedCollection<T> : Collection<T>, IReadOnlyList<T>, IReadOnlyCollection<T>, IBindingListView, IBindingList, IList, ICollection, IList<T>, ICollection<T>, IObservableSource<T>, IIndexedSource<T>, IEnumerable<T>, IEnumerable
Type Parameters
Name Description
T

The type of the elements in the collection.

Remarks

If you don't have preexisting collection classes and need to create your own, the best choice is to use the built-in LiveLinq collection class IndexedCollection<T>. It is specifically optimized for LiveLinq use.

Usually, the element class T must implement the property change notification interface INotifyPropertyChanged. The easiest way to implement INotifyPropertyChanged is to derive the element class from IndexableObject.

In rare cases where implementing INotifyPropertyChanged is impossible, a custom PropertyChangeListener<T> can be provided instead.

For details, see Using the built-in collection class IndexedCollection(T) (LiveLinq to Objects).

For alternative options in LiveLinq to Objects, see LiveLinq to Objects: IndexedCollection(T) and other collection classes

The IndexedCollection<T> class is not needed in LiveLinq to DataSet and LiveLinq to XML, because in those cases LiveLinq works with collections that already exist in ADO.NET and XML.

Constructors

Name Description
IndexedCollection()

Initializes a new instance of the IndexedCollection<T> class.

IndexedCollection(IList<T>)

Initializes a new instance of the IndexedCollection<T> class that contains elements copied from the specified list.

IndexedCollection(IList<T>, PropertyChangeListener<T>)

Initializes a new instance of the IndexedCollection<T> class that contains elements copied from the specified list, and provides a custom PropertyChangeListener<T>.

Properties

Name Description
CreateNew

Gets or sets a delegate that is used to create new items. If it is null, a public parameterless constructor of type T is used.

Indexes

The collection of indexes for this IndexedCollection<T>

Methods

Name Description
AddRange(IEnumerable<T>)

Adds the elements of the specified collection to the end of the IndexedCollection<T>

BeginUpdate()

Suspends notifications while massive changes are being made to the IndexedCollection<T>.

ClearItems()

Removes all elements from the IndexedCollection<T>

EndUpdate()

Ends notification suspension started with BeginUpdate().

InsertItem(int, T)

Inserts an element into the IndexedCollection<T> at the specified ordinal position.

OnChanged(SourceChangeEventArgs<T>)

Raises the Changed event.

RemoveItem(int)

Removes the element of the IndexedCollection<T> at the specified ordinal position.

SetItem(int, T)

Replaces the element at the specified ordinal position.

Events

Name Description
Changed

Occurs after the collection has changed.

Extension Methods