U​IElement​Collection U​IElement​Collection U​IElement​Collection 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
<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<T> with a UIElement constraint.

Properties

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 T
Parameters
index
System.Int32 System.Int32 System.Int32

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

Value
T T T

The element at the specified index.

Attributes
Exceptions
System.ArgumentOutOfRangeException System.ArgumentOutOfRangeException System.ArgumentOutOfRangeException

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

System.NotSupportedException System.NotSupportedException System.NotSupportedException

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

See Also
System.Collections.Generic.ICollection<T>.IsReadOnlySystem.Collections.Generic.ICollection<T>.IsReadOnlySystem.Collections.Generic.ICollection<T>.IsReadOnly

Size Size Size

Gets the size (count) of the collection.

public unsigned short Size { get; }This member is not implemented in C#This member is not implemented in VB.Net
Value
uint uint uint

The count of items in the collection.

Attributes

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)

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
Parameters
value
UIElement UIElement UIElement

The new item to add.

Attributes

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.

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
Attributes

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()

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

Attributes

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)

Returns the item located at the specified index.

public UIElement GetAt(UInt32 index)This member is not implemented in C#This member is not implemented in VB.Net
Parameters
index
System.UInt32 System.UInt32 System.UInt32

The integer index for the value to retrieve.

Returns

The UIElement value at the specified index.

Attributes

Remarks

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

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)
Returns
System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerator<T> System.Collections.Generic.IEnumerator<T>

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

Attributes
See Also
System.Collections.Generic.IEnumerator<T>System.Collections.Generic.IEnumerator<T>System.Collections.Generic.IEnumerator<T>

GetMany(UInt32, UIElement[]) GetMany(UInt32, UIElement[]) GetMany(UInt32, UIElement[])

Retrieves multiple elements in a single pass through the iterator.

public unsigned short GetMany(UInt32 startIndex, UIElement[] items)This member is not implemented in C#This member is not implemented in VB.Net
Parameters
startIndex
System.UInt32 System.UInt32 System.UInt32

The index from which to start retrieval.

items
Windows.UI.Xaml.UIElement[] Windows.UI.Xaml.UIElement[] Windows.UI.Xaml.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
uint uint uint

The number of items retrieved.

Attributes

Remarks

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

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
Returns

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

Attributes

Remarks

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

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 Integer
Parameters
item
T T T

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

Returns
System.Int32 System.Int32 System.Int32

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

Attributes

IndexOf(UIElement, UInt32) IndexOf(UIElement, UInt32) IndexOf(UIElement, UInt32)

Retrieves the index of the specified item.

public PlatForm::Boolean IndexOf(UIElement value, UInt32 index)This member is not implemented in C#This member is not implemented in VB.Net
Parameters
value
UIElement UIElement UIElement

The value to find in the collection.

index
System.UInt32 System.UInt32 System.UInt32

The index of the item to find, if found.

Returns
bool bool bool

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

Attributes

Remarks

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

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)
Parameters
index
System.Int32 System.Int32 System.Int32

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

item
T T T

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

Attributes
Exceptions
System.ArgumentOutOfRangeException System.ArgumentOutOfRangeException System.ArgumentOutOfRangeException

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

System.NotSupportedException System.NotSupportedException System.NotSupportedException

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

See Also
System.Collections.Generic.ICollection<T>.IsReadOnlySystem.Collections.Generic.ICollection<T>.IsReadOnlySystem.Collections.Generic.ICollection<T>.IsReadOnly

InsertAt(UInt32, UIElement) InsertAt(UInt32, UIElement) InsertAt(UInt32, UIElement)

Inserts the specified item at the specified index.

public void InsertAt(UInt32 index, UIElement value)This member is not implemented in C#This member is not implemented in VB.Net
Parameters
index
System.UInt32 System.UInt32 System.UInt32

The index at which to set the value.

value
UIElement UIElement UIElement

The value to set.

Attributes

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)

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

public void Move(UInt32 oldIndex, UInt32 newIndex)public void Move(UInt32 oldIndex, UInt32 newIndex)Public Function Move(oldIndex As UInt32, newIndex As UInt32) As void
Parameters
oldIndex
System.UInt32 System.UInt32 System.UInt32

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

newIndex
System.UInt32 System.UInt32 System.UInt32

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

Attributes

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)

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)
Parameters
index
System.Int32 System.Int32 System.Int32

The zero-based index of the item to remove.

Attributes
Exceptions
System.ArgumentOutOfRangeException System.ArgumentOutOfRangeException System.ArgumentOutOfRangeException

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

System.NotSupportedException System.NotSupportedException System.NotSupportedException

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

See Also
System.Collections.Generic.ICollection<T>.IsReadOnlySystem.Collections.Generic.ICollection<T>.IsReadOnlySystem.Collections.Generic.ICollection<T>.IsReadOnly

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

Removes the item at the specified index.

public void RemoveAt(UInt32 index)This member is not implemented in C#This member is not implemented in VB.Net
Parameters
index
System.UInt32 System.UInt32 System.UInt32

The index position of the item to remove.

Attributes

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.

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
Attributes

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

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
Parameters
items
Windows.UI.Xaml.UIElement[] Windows.UI.Xaml.UIElement[] Windows.UI.Xaml.UIElement[]

The new collection items.

Attributes

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.

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

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

public void SetAt(UInt32 index, UIElement value)This member is not implemented in C#This member is not implemented in VB.Net
Parameters
index
System.UInt32 System.UInt32 System.UInt32

The index at which to set the value.

value
UIElement UIElement UIElement

The value to set.

Attributes

Remarks

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

See Also