Mega Code Archive

 
Categories / VB.Net Tutorial / 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.vb Imports System.Collections.ObjectModel Namespace WpfApplication1   Public Class Employee     Public Property FirstName() As String       Get         Return m_FirstName       End Get       Set         m_FirstName = Value       End Set     End Property     Private m_FirstName As String     Public Property Age() As Integer       Get         Return m_Age       End Get       Set         m_Age = Value       End Set     End Property     Private m_Age As Integer     Public Property Photo() As String       Get         Return m_Photo       End Get       Set         m_Photo = Value       End Set     End Property     Private m_Photo As String     Public Overrides Function ToString() As String       Return FirstName     End Function   End Class   Public Class People     Inherits Collection(Of Employee)     Public Sub New()       Me.Add(New Employee() With { _         .FirstName = "A", _         .Age = 26, _         .Photo = "a.png" _       })       Me.Add(New Employee() With { _         .FirstName = "C", _         .Age = 24, _         .Photo = "c.png" _       })     End Sub   End Class End Namespace