CollectionContainer Class
Holds an existing collection structure, such as an ObservableCollection(Of T) or a DataSet, to be used inside a CompositeCollection.
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 following example shows how to display multiple collections and items as one list using the CompositeCollection class. In this example, GreekGods is an ObservableCollection(Of 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>
System.Windows.Threading.DispatcherObject
System.Windows.DependencyObject
System.Windows.Data.CollectionContainer
Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003
The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.