Without specifying a DataTemplate, the ListBox displays a list of names.
<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 Margin="10" ItemsSource="{Binding Source={StaticResource people}}"/> </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