Mega Code Archive

 
Categories / C# / WPF
 

ListBox binds to the people collection, and sets the DataTemplate to use for displaying each item

<Window      x:Class="WpfApplication1.Window1"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     xmlns:WpfApplication1="clr-namespace:WpfApplication1"     Title="WPF" Height="300" Width="300">     <Window.Resources>         <WpfApplication1:People x:Key="people"/>                  <DataTemplate x:Key="personTemplate">                 <Grid>                     <Grid.ColumnDefinitions>                         <ColumnDefinition Width="80"/>                         <ColumnDefinition Width="*"/>                     </Grid.ColumnDefinitions>                     <StackPanel>                         <TextBlock                             Style="{StaticResource lblStyle}"                             Text="First Name" />                         <TextBlock                              Style="{StaticResource dataStyle}"                             Text="{Binding Path=FirstName}"/>                         <TextBlock                              Style="{StaticResource lblStyle}"                             Text="Age" />                         <TextBlock                              Style="{StaticResource dataStyle}"                             Text="{Binding Path=Age}" />                     </StackPanel>                     <Image                          Margin="4"                         Grid.Column="1"                          Width="96"                         Height="140"                         Source="{Binding Path=Photo}"/>                 </Grid>         </DataTemplate>     </Window.Resources>     <Grid>         <ListBox             ItemsSource="{Binding Source={StaticResource people}}"             ItemTemplate="{StaticResource personTemplate}"/>     </Grid> </Window> //File:Window.xaml.cs using System.Collections.ObjectModel; namespace WpfApplication1 {     public class Employee     {         public string FirstName         {             get;             set;         }         public int Age         {             get;             set;         }         public string Photo         {             get;             set;         }         public override string ToString()         {             return FirstName;         }     }     public class People : Collection<Employee>     {         public People()         {             this.Add(new Employee()                          {                              FirstName = "A",                              Age = 26,                              Photo = "a.png"                          });             this.Add(new Employee()                          {                              FirstName = "C",                              Age = 24,                              Photo = "c.png"                          });         }     } }