DependencyObjectCollection DependencyObjectCollection DependencyObjectCollection DependencyObjectCollection Class

Definition

Implements a practical collection class that can contain DependencyObject items.

public : class DependencyObjectCollection : DependencyObject, IIterable, IObservableVector, IVectorpublic class DependencyObjectCollection : DependencyObject, IEnumerable, IObservableVector, IListPublic Class DependencyObjectCollection Inherits DependencyObject Implements IEnumerable, IObservableVector, IList// This API is not available in Javascript.
Inheritance
DependencyObjectCollectionDependencyObjectCollectionDependencyObjectCollectionDependencyObjectCollection
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Inherited Members

Inherited methods

Inherited properties

Remarks

The purpose of the DependencyObjectCollection class is mainly to support the tooling and portability of behaviors. Behaviors are a technique for defining certain basic interactions of a UI element entirely in XAML, without requiring an event handler and code-behind.

If you're interested in implementing a business object class that supports collection-changed notifications you should use ObservableCollection or one of the interface patterns that supports changed events. For more info see Data binding in depth.

Enumerating the collection in C# or Microsoft Visual Basic

A DependencyObjectCollection is enumerable, so you can use language-specific syntax such as foreach in C# to enumerate the items in the collection. The compiler does the type-casting for you and you won't need to cast to IEnumerable<DependencyObject> explicitly. If you do need to cast explicitly, for example if you want to call GetEnumerator, cast to IEnumerable with a DependencyObject constraint.

Constructors

DependencyObjectCollection() DependencyObjectCollection() DependencyObjectCollection() DependencyObjectCollection()

Initializes a new instance of the DependencyObjectCollection class.

public : DependencyObjectCollection()public DependencyObjectCollection()Public Sub New()// This API is not available in Javascript.

Properties

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Gets or sets the element at the specified index.

This member is not implemented in C++T this[int index] { get; set; }Property Item(index As Integer) As TT this[int index] { get; set; }
Parameters
index

The zero-based index of the element to get or set.

Value
T T T T

The element at the specified index.

Exceptions

index is not a valid index in the System.Collections.Generic.IList`1.

The property is set and the System.Collections.Generic.IList`1 is read-only.

Size Size Size Size

Gets the size (count) of the collection.

public : unsigned int Size { get; }This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Value
unsigned int uint uint uint

The count of items in the collection.

Remarks

Note

The equivalent Microsoft .NET API is Count.

Methods

Append(DependencyObject) Append(DependencyObject) Append(DependencyObject) Append(DependencyObject)

Adds a new item to the collection.

public : void Append(DependencyObject value)This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Parameters

Remarks

Note

The equivalent Microsoft .NET API is Add.

Clear() Clear() Clear() Clear()

Removes all items from the collection.

public : void Clear()This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.

First() First() First() First()

Returns the iterator for iteration over the items in the collection.

public : IIterator<DependencyObject> First()This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Returns

The iterator object. The iterator's current position is at the 0-index position, or at the collection end if the collection is empty.

Remarks

You can iterate through a DependencyObjectCollection in C# or Microsoft Visual Basic. In many cases, such as using foreach syntax, the compiler does this casting for you and you won't need to cast to IEnumerable<DependencyObject> explicitly. If you do need to cast explicitly, for example if you want to call GetEnumerator, cast to IEnumerable with a DependencyObject constraint.

GetAt(UInt32) GetAt(UInt32) GetAt(UInt32) GetAt(UInt32)

Returns the DependencyObject located at the specified index.

public : DependencyObject GetAt(unsigned int index)This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Parameters
index
unsigned int UInt32 UInt32 UInt32

The integer index for the value to retrieve.

Returns

Remarks

Note

The equivalent Microsoft .NET API is Item (the indexer).

GetEnumerator() GetEnumerator() GetEnumerator() GetEnumerator()

Returns an enumerator that iterates through the collection.

This member is not implemented in C++IEnumerator<T> GetEnumerator()Function GetEnumerator As IEnumerator(Of T)IEnumerator<T> GetEnumerator()
Returns

An enumerator that can be used to iterate through the collection.

GetMany(UInt32, DependencyObject[]) GetMany(UInt32, DependencyObject[]) GetMany(UInt32, DependencyObject[]) GetMany(UInt32, DependencyObject[])

Retrieves multiple elements in a single pass through the iterator.

public : unsigned int GetMany(unsigned int startIndex, DependencyObject[] items)This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Parameters
startIndex
unsigned int UInt32 UInt32 UInt32

The index from which to start retrieval.

items
DependencyObject[] DependencyObject[] DependencyObject[] DependencyObject[]

Provides the destination for the result. Size the initial array size as a capacity in order to specify how many results should be retrieved.

Returns
unsigned int uint uint uint

The number of items returned.

Remarks

Note

The equivalent Microsoft .NET API is CopyTo.

GetView() GetView() GetView() GetView()

Gets an immutable view into the collection.

public : IVectorView<DependencyObject> GetView()This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Returns
IVectorView<DependencyObject> IReadOnlyList<DependencyObject> IReadOnlyList<DependencyObject> IReadOnlyList<DependencyObject>

An object representing the immutable collection view.

IndexOf(T) IndexOf(T) IndexOf(T) IndexOf(T)

Determines the index of a specific item in the System.Collections.Generic.IList`1.

This member is not implemented in C++int IndexOf(T item)Function IndexOf(item As T) As Integerint IndexOf(T item)
Parameters
item
T T T T

The object to locate in the System.Collections.Generic.IList`1.

Returns

The index of item if found in the list; otherwise, -1.

IndexOf(DependencyObject, UInt32) IndexOf(DependencyObject, UInt32) IndexOf(DependencyObject, UInt32) IndexOf(DependencyObject, UInt32)

Retrieves the index of the specified item.

public : PlatForm::Boolean IndexOf(DependencyObject value, unsigned int index)This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Parameters
value
DependencyObject DependencyObject DependencyObject DependencyObject

The value to find in the collection.

index
unsigned int UInt32 UInt32 UInt32

The index of the item to find, if found.

Returns
PlatForm::Boolean bool bool bool

true if an item with the specified value was found; otherwise, false.

Remarks

Note

The equivalent Microsoft .NET API is IndexOf, or Contains if you want a Boolean return value that indicates that the value exists.

Insert(Int32, T) Insert(Int32, T) Insert(Int32, T) Insert(Int32, T)

Inserts an item to the System.Collections.Generic.IList`1 at the specified index.

This member is not implemented in C++void Insert(int index, T item)Sub Insert(index As Integer, item As T)void Insert(int index, T item)
Parameters
index

The zero-based index at which item should be inserted.

item
T T T T

The object to insert into the System.Collections.Generic.IList`1.

Exceptions

index is not a valid index in the System.Collections.Generic.IList`1.

The System.Collections.Generic.IList`1 is read-only.

InsertAt(UInt32, DependencyObject) InsertAt(UInt32, DependencyObject) InsertAt(UInt32, DependencyObject) InsertAt(UInt32, DependencyObject)

Inserts the specified item at the specified index.

public : void InsertAt(unsigned int index, DependencyObject value)This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Parameters
index
unsigned int UInt32 UInt32 UInt32

The index at which to set the value.

Remarks

InsertAt expands the collection and moves all subsequent index items by one. In contrast, SetAt replaces the item at the index, and the collection count remains the same.

Note

The equivalent Microsoft .NET API is Insert.

RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32) RemoveAt(Int32)

Removes the System.Collections.Generic.IList`1 item at the specified index.

This member is not implemented in C++void RemoveAt(int index)Sub RemoveAt(index As Integer)void RemoveAt(int index)
Parameters
index

The zero-based index of the item to remove.

Exceptions

index is not a valid index in the System.Collections.Generic.IList`1.

The System.Collections.Generic.IList`1 is read-only.

RemoveAt(UInt32) RemoveAt(UInt32) RemoveAt(UInt32) RemoveAt(UInt32)

Removes the item at the specified index.

public : void RemoveAt(unsigned int index)This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Parameters
index
unsigned int UInt32 UInt32 UInt32

The index position of the item to remove.

Remarks

If successful, calling this method reduces the collection size by one. Items with index values greater than the called index have their index values reduced by one.

Note

The equivalent Microsoft .NET API is RemoveAt.

RemoveAtEnd() RemoveAtEnd() RemoveAtEnd() RemoveAtEnd()

Removes the last item in the collection.

public : void RemoveAtEnd()This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.

Remarks

If successful, calling this method reduces the collection size by one.

ReplaceAll(DependencyObject[]) ReplaceAll(DependencyObject[]) ReplaceAll(DependencyObject[]) ReplaceAll(DependencyObject[])

Initially clears the collection, then inserts the provided array as new items.

public : void ReplaceAll(DependencyObject[] items)This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Parameters
items
DependencyObject[] DependencyObject[] DependencyObject[] DependencyObject[]

The new collection items.

Remarks

For implementations that track a changed event, which this collection does do with VectorChanged, the initial reset fires an event, but the items added do not fire discrete per-item events.

SetAt(UInt32, DependencyObject) SetAt(UInt32, DependencyObject) SetAt(UInt32, DependencyObject) SetAt(UInt32, DependencyObject)

Sets the value at the specified index to the DependencyObject value specified.

public : void SetAt(unsigned int index, DependencyObject value)This member is not implemented in C#This member is not implemented in VB.Net// This API is not available in Javascript.
Parameters
index
unsigned int UInt32 UInt32 UInt32

The index at which to set the value.

Remarks

InsertAt expands the collection and moves all subsequent index items by one. In contrast, SetAt replaces the item at the index, and the collection count remains the same.

Note

The equivalent Microsoft .NET API is Item (the indexer).

Events

VectorChanged VectorChanged VectorChanged VectorChanged

Occurs when the contents of the collection changes.

public : event VectorChangedEventHandler VectorChanged<DependencyObject>public event VectorChangedEventHandler VectorChanged<DependencyObject>Public Event VectorChanged<DependencyObject>// This API is not available in Javascript.

Remarks

This event is named VectorChanged for all languages, but for C# and Microsoft Visual Basic the implemented collection type is IList.

The type of change that was applied to the collection is communicated as a CollectionChange value in the event data, with a collection index for where in the collection the change occurred. Because it reports per-index, multiple VectorChanged events can originate from the same collection at the same time.

See Also