Mega Code Archive

 
Categories / VB.Net Tutorial / WPF
 

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