CompositeCollection Class
Enables multiple collections and items to be displayed as a single list.
Assembly: PresentationFramework (in PresentationFramework.dll)
XMLNS for XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
The CompositeCollection type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | CompositeCollection() | Creates a new instance of the CompositeCollection class that is empty and has default initial capacity. |
![]() | CompositeCollection(Int32) | Creates a new instance of the CompositeCollection class that is empty and has a specified initial capacity. |
| Name | Description | |
|---|---|---|
![]() | Add | Adds the specified item to this collection. |
![]() | Clear | Clears the collection. |
![]() | Contains | Checks to see if a given item is in this collection. |
![]() | CopyTo | Makes a shallow copy of object references from this collection to the given array. |
![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | IndexOf | Returns the index in this collection where the given item is found. |
![]() | Insert | Inserts an item in the collection at a given index. All items after the given position are moved down by one. |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | ReceiveWeakEvent | Handles events from the centralized event table. |
![]() | Remove | Removes the given item reference from the collection. All remaining items move up by one. |
![]() | RemoveAt | Removes an item from the collection at the given index. All remaining items move up by one. |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() | CollectionChanged | Occurs when the collection changes, either by adding or removing an item. |
| Name | Description | |
|---|---|---|
![]() | AsParallel | Enables parallelization of a query. (Defined by ParallelEnumerable.) |
![]() | AsQueryable | Converts an IEnumerable to an IQueryable. (Defined by Queryable.) |
![]() | Cast<TResult> | Casts the elements of an IEnumerable to the specified type. (Defined by Enumerable.) |
![]() | OfType<TResult> | Filters the elements of an IEnumerable based on a specified type. (Defined by Enumerable.) |
| Name | Description | |
|---|---|---|
![]() ![]() | ICollection::IsSynchronized | This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. |
![]() ![]() | ICollection::SyncRoot | This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. |
![]() ![]() | ICollectionViewFactory::CreateView | This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. |
![]() ![]() | IEnumerable::GetEnumerator | Returns an enumerator. |
![]() ![]() | IList::IsFixedSize | This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. |
![]() ![]() | IList::IsReadOnly | This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. |
![]() ![]() | INotifyCollectionChanged::CollectionChanged | Occurs when the collection has changed. |
![]() ![]() | IWeakEventListener::ReceiveWeakEvent | This member supports the Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. |
CompositeCollection can contain items such as strings, objects, XML nodes, elements, as well as other collections. An ItemsControl uses the data in the CompositeCollection to generate its content according to its ItemTemplate. For more information about using ItemsControl objects to bind to collections, see the Binding to Collections section of the Data Binding Overview.
The following example shows how to display multiple collections and items as one list using the CompositeCollection class. In this example, GreekGods is an ObservableCollection<T> of GreekGod custom objects. Data templates are defined so that GreekGod objects and GreekHero objects appear with a gold and a cyan foreground color respectively.
<Window Background="Cornsilk" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:c="clr-namespace:SDKSample" x:Class="SDKSample.Window1" Title="CompositeCollections" SizeToContent="WidthAndHeight" > <Window.Resources> <c:GreekGods x:Key="GreekGodsData"/> <XmlDataProvider x:Key="GreekHeroesData" XPath="GreekHeroes/Hero"> <x:XData> <GreekHeroes xmlns=""> <Hero Name="Jason" /> <Hero Name="Hercules" /> <Hero Name="Bellerophon" /> <Hero Name="Theseus" /> <Hero Name="Odysseus" /> <Hero Name="Perseus" /> </GreekHeroes> </x:XData> </XmlDataProvider> <DataTemplate DataType="{x:Type c:GreekGod}"> <TextBlock Text="{Binding Path=Name}" Foreground="Gold"/> </DataTemplate> <DataTemplate DataType="Hero"> <TextBlock Text="{Binding XPath=@Name}" Foreground="Cyan"/> </DataTemplate> </Window.Resources> <StackPanel> <TextBlock FontSize="18" FontWeight="Bold" Margin="10" HorizontalAlignment="Center">Composite Collections Sample</TextBlock> <ListBox Name="myListBox" Height="300" Width="200" Background="White"> <ListBox.ItemsSource> <CompositeCollection> <CollectionContainer Collection="{Binding Source={StaticResource GreekGodsData}}" /> <CollectionContainer Collection="{Binding Source={StaticResource GreekHeroesData}}" /> <ListBoxItem Foreground="Red">Other Listbox Item 1</ListBoxItem> <ListBoxItem Foreground="Red">Other Listbox Item 2</ListBoxItem> </CompositeCollection> </ListBox.ItemsSource> </ListBox> </StackPanel> </Window>
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.



