UIElementCollection UIElementCollection UIElementCollection Class

Represents an ordered collection of UIElement objects.

Syntax

Declaration

public sealed class UIElementCollectionpublic sealed class UIElementCollectionPublic NotInheritable Class UIElementCollection
<panelobject>
  oneOrMoreChildren
</panelobject>

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 summary

Gets the size (count) of the collection.

Methods summary

Adds a new item to the collection.

Removes all items from the collection.

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

Returns the item located at the specified index.

Retrieves multiple elements in a single pass through the iterator.

Gets an immutable view into the collection.

Retrieves the index of the specified item.

Inserts the specified item at the specified index.

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

Removes the item at the specified index.

Removes the last item in the collection.

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

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

Properties

  • Size
    Size
    Size
    Size

    Gets the size (count) of the collection.

    public uint Size { get; }public uint Size { get; }Public ReadOnly Property Size As uintpublic uint Size { get; }

    Property Value

    • 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(UInt32), 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)public void Append(UIElement value)Public Function Append(value As UIElement) As voidpublic void Append(UIElement value)

    Parameters

    Remarks

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

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

  • Clear()
    Clear()
    Clear()
    Clear()

    Removes all items from the collection.

    public void Clear()public void Clear()Public Function Clear() As voidpublic void Clear()

    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()public IIterator<UIElement> First()Public Function First() As IIterator( Of UIElement )public IIterator<UIElement> First()

    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<T> 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(UInt32 index)public UIElement GetAt(UInt32 index)Public Function GetAt(index As UInt32) As UIElementpublic UIElement GetAt(UInt32 index)

    Parameters

    • index
      System.UInt32
      System.UInt32
      System.UInt32

      The integer index for the value to retrieve.

    Returns

    Remarks

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

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

    Retrieves multiple elements in a single pass through the iterator.

    public uint GetMany(UInt32 startIndex, UIElement[] items)public uint GetMany(UInt32 startIndex, UIElement[] items)Public Function GetMany(startIndex As UInt32, items As UIElement[]) As uintpublic uint GetMany(UInt32 startIndex, UIElement[] items)

    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.

    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()public IVectorView<UIElement> GetView()Public Function GetView() As IVectorView( Of UIElement )public IVectorView<UIElement> GetView()

    Returns

    • An object representing the immutable collection view. This object implements IVectorView<T> with a UIElement constraint.

    Remarks

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

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

    Retrieves the index of the specified item.

    public bool IndexOf(UIElement value, UInt32 index)public bool IndexOf(UIElement value, UInt32 index)Public Function IndexOf(value As UIElement, index As UInt32) As boolpublic bool IndexOf(UIElement value, UInt32 index)

    Parameters

    • value

      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.

    Remarks

    If you are programming using C# or Microsoft Visual Basic, see IndexOf(UIElement, UInt32).

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

    Inserts the specified item at the specified index.

    public void InsertAt(UInt32 index, UIElement value)public void InsertAt(UInt32 index, UIElement value)Public Function InsertAt(index As UInt32, value As UIElement) As voidpublic void InsertAt(UInt32 index, UIElement value)

    Parameters

    • index
      System.UInt32
      System.UInt32
      System.UInt32

      The index at which to set the value.

    • value

      The value to set.

    Remarks

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

    If you are programming using C# or Microsoft Visual Basic, see InsertAt(UInt32, UIElement).

  • 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(UInt32 oldIndex, UInt32 newIndex)public void Move(UInt32 oldIndex, UInt32 newIndex)Public Function Move(oldIndex As UInt32, newIndex As UInt32) As voidpublic void Move(UInt32 oldIndex, UInt32 newIndex)

    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.

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

    Removes the item at the specified index.

    public void RemoveAt(UInt32 index)public void RemoveAt(UInt32 index)Public Function RemoveAt(index As UInt32) As voidpublic void RemoveAt(UInt32 index)

    Parameters

    • index
      System.UInt32
      System.UInt32
      System.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(UInt32). The behavior of each language's RemoveAt is basically the same.

  • RemoveAtEnd()
    RemoveAtEnd()
    RemoveAtEnd()
    RemoveAtEnd()

    Removes the last item in the collection.

    public void RemoveAtEnd()public void RemoveAtEnd()Public Function RemoveAtEnd() As voidpublic void RemoveAtEnd()

    Remarks

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

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

  • 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)public void ReplaceAll(UIElement[] items)Public Function ReplaceAll(items As UIElement[]) As voidpublic void ReplaceAll(UIElement[] items)

    Parameters

    • items
      Windows.UI.Xaml.UIElement[]
      Windows.UI.Xaml.UIElement[]
      Windows.UI.Xaml.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(UIElement[]). Use Clear() and then successive calls to Add.

  • 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(UInt32 index, UIElement value)public void SetAt(UInt32 index, UIElement value)Public Function SetAt(index As UInt32, value As UIElement) As voidpublic void SetAt(UInt32 index, UIElement value)

    Parameters

    • index
      System.UInt32
      System.UInt32
      System.UInt32

      The index at which to set the value.

    • value

      The value to set.

    Remarks

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

Device family

Windows 10 (introduced v10.0.10240.0)

API contract

Windows.Foundation.UniversalApiContract (introduced v1)

Attributes

Windows.Foundation.Metadata.ContractVersionAttribute
Windows.Foundation.Metadata.MarshalingBehaviorAttribute
Windows.Foundation.Metadata.ThreadingAttribute
Windows.Foundation.Metadata.WebHostHiddenAttribute

Details

Assembly

Windows.UI.Xaml.Controls.dll