Data binding using collections composed of mixed types of data.
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:WpfApplication1"
x:Class="WpfApplication1.Window1"
Title="CompositeCollections"
SizeToContent="WidthAndHeight">
<Window.Resources>
<c:Employees x:Key="EmployeesData"/>
<XmlDataProvider x:Key="NewStudentesData" XPath="NewStudentes/Student">
<x:XData>
<NewStudentes xmlns="">
<Student Name="Jason" />
<Student Name="Hercules" />
<Student Name="Bellerophon" />
<Student Name="Theseus" />
<Student Name="Odysseus" />
<Student Name="Perseus" />
</NewStudentes>
</x:XData>
</XmlDataProvider>
<DataTemplate DataType="{x:Type c:Employee}">
<TextBlock Text="{Binding Path=Name}" Foreground="Gold"/>
</DataTemplate>
<DataTemplate DataType="Student">
<TextBlock Text="{Binding XPath=@Name}" Foreground="Cyan"/>
</DataTemplate>
</Window.Resources>
<StackPanel>
<ListBox Name="myListBox" Height="300" Width="200">
<ListBox.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{Binding Source={StaticResource EmployeesData}}" />
<CollectionContainer Collection="{Binding Source={StaticResource NewStudentesData}}" />
<ListBoxItem Foreground="Red">Other Listbox Item 1</ListBoxItem>
</CompositeCollection>
</ListBox.ItemsSource>
</ListBox>
</StackPanel>
</Window>
//File:Window.xaml.vb
Imports System
Imports System.ComponentModel
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Documents
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Imports System.Windows.Data
Imports System.Collections.ObjectModel
Namespace WpfApplication1
Public Partial Class Window1
Inherits Window
Public Sub New()
InitializeComponent()
End Sub
End Class
Public Class Employee
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set
_name = value
End Set
End Property
Public Sub New(name__1 As String)
Name = name__1
End Sub
End Class
Public Class Employees
Inherits ObservableCollection(Of Employee)
Public Sub New()
Add(New Employee("A"))
Add(New Employee("B"))
Add(New Employee("C"))
End Sub
End Class
End Namespace
Related examples in the same category