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
Related examples in the same category