UIElementCollection UIElementCollection UIElementCollection UIElementCollection Class

Definition

Represents an ordered collection of UIElement objects.

public : sealed class UIElementCollection : IIterable, IVector, IUIElementCollectionpublic sealed class UIElementCollection : IEnumerable, IList, IUIElementCollectionPublic NotInheritable Class UIElementCollection Implements IEnumerable, IList, IUIElementCollection// This API is not available in Javascript.
<panelobject>
  oneOrMoreChildren
</panelobject>
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Remarks

A UIElementCollection is the type of object that you get from the Children property of a Panel. For example, if you get a value from Grid.Children, that value is a UIElementCollection instance. All the properties that use a UIElementCollection in the Windows Runtime API are read-only properties, where the property is initialized with zero items when an object is first instantiated. But you can then add, remove or query items in the collection at run time, using the UIElementCollection properties and methods.

The type of the items in the UIElementCollection is constrained as UIElement. But UIElement is a base element class in Windows Runtime using XAML, so there are hundreds of element types that can be treated as a UIElement and can thus be one of the items in a UIElementCollection.

Enumerating the collection in C# or Microsoft Visual Basic

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

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

The Size value returns the true number of items. API that use the index, such as GetAt, use a zero-based index, so you would subtract one from Size in order to specify that you want the last item in the collection.

If you are programming using C# or Microsoft Visual Basic, see Count.

Methods

Append(UIElement) Append(UIElement) Append(UIElement) Append(UIElement)

Adds a new item to the collection.

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

The new item to add.

Remarks

Append adds the item to the end of the collection. If you want to insert an item into the beginning or middle of a collection, use InsertAt.

If you are programming using C# or Microsoft Visual Basic, see Add.

See Also

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.

Remarks

The Clear method can be used when programming in C#, Microsoft Visual Basic or Visual C++ component extensions (C++/CX). The method signature is the same in each of these languages, and the behavior is the same.

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

Returns the iterator object that can iterate over the items in the UIElementCollection.

public : IIterator<UIElement> 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

A convenient way to hold the iterator returned by First is to assign the return value to a variable that is declared with the auto type deduction keyword. Then use IIterator API as part of a while loop. For example:

auto iterator1 = uieCollection->First();
while (iterator1->HasCurrent)
{
    auto currentItem = iterator1->Current;
    //your logic here that does something with currentItem
    iterator1->MoveNext();
}

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

Returns the item located at the specified index.

public : UIElement 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

The UIElement value at the specified index.

Remarks

If you are programming using C# or Microsoft Visual Basic, see Item (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, UIElement[]) GetMany(UInt32, UIElement[]) GetMany(UInt32, UIElement[]) GetMany(UInt32, UIElement[])

Retrieves multiple elements in a single pass through the iterator.

public : unsigned int GetMany(unsigned int startIndex, UIElement[] 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
UIElement[] UIElement[] UIElement[] UIElement[]

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 retrieved.

Remarks

If you are programming using C# or Microsoft Visual Basic, see CopyTo.

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

Gets an immutable view into the collection.

public : IVectorView<UIElement> 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<UIElement> IReadOnlyList<UIElement> IReadOnlyList<UIElement> IReadOnlyList<UIElement>

An object representing the immutable collection view. This object implements IVectorView; with a UIElement constraint.

Remarks

If you are programming using C# or Microsoft Visual Basic, see CopyTo.

See Also

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(UIElement, UInt32) IndexOf(UIElement, UInt32) IndexOf(UIElement, UInt32) IndexOf(UIElement, UInt32)

Retrieves the index of the specified item.

public : PlatForm::Boolean IndexOf(UIElement 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
UIElement UIElement UIElement UIElement

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

If you are programming using C# or Microsoft Visual Basic, see IndexOf.

See Also

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, UIElement) InsertAt(UInt32, UIElement) InsertAt(UInt32, UIElement) InsertAt(UInt32, UIElement)

Inserts the specified item at the specified index.

public : void InsertAt(unsigned int index, UIElement 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.

value
UIElement UIElement UIElement UIElement

The value to set.

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.

If you are programming using C# or Microsoft Visual Basic, see Insert.

Move(UInt32, UInt32) Move(UInt32, UInt32) Move(UInt32, UInt32) Move(UInt32, UInt32)

Moves the item at the specified index to a new location in the collection.

public : void Move(unsigned int oldIndex, unsigned int newIndex)public void Move(UInt32 oldIndex, UInt32 newIndex)Public Function Move(oldIndex As UInt32, newIndex As UInt32) As void// This API is not available in Javascript.
Parameters
oldIndex
unsigned int UInt32 UInt32 UInt32

The zero-based index specifying the location of the item to be moved.

newIndex
unsigned int UInt32 UInt32 UInt32

The zero-based index specifying the new location of the item.

Remarks

Calling this method offers advantages over removing an item and adding it to a new location. Specifically, not as much tree rebuilding is required internally, and panels or controls that use UIElementCollection for items can be more responsive.

An example of a scenario where using Move may be useful is if you have a collection view or a specialized panel that supports a user experience where items wrap around. In this case you might want to move an item from the start of the collection to the end or vice versa, without forcing the entire visual tree under the panel or view to be rebuilt.

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.

If you are programming using C# or Microsoft Visual Basic, see RemoveAt. The behavior of each language's RemoveAt is basically the same.

See Also

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.

If you are programming using C# or Microsoft Visual Basic, see RemoveAt (pass an index value of Count minus one).

See Also

ReplaceAll(UIElement[]) ReplaceAll(UIElement[]) ReplaceAll(UIElement[]) ReplaceAll(UIElement[])

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

public : void ReplaceAll(UIElement[] 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
UIElement[] UIElement[] UIElement[] UIElement[]

The new collection items.

Remarks

For implementations that track a "changed" event, the initial reset fires an event, but the items added do not fire discrete per-item events.

If you are programming using C# or Microsoft Visual Basic, there is no single-call equivalent to ReplaceAll. Use Clear and then successive calls to Add.

See Also

SetAt(UInt32, UIElement) SetAt(UInt32, UIElement) SetAt(UInt32, UIElement) SetAt(UInt32, UIElement)

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

public : void SetAt(unsigned int index, UIElement 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.

value
UIElement UIElement UIElement UIElement

The value to set.

Remarks

If you are programming using C# or Microsoft Visual Basic, see Item (indexer).

See Also