クラスの配列をデータグリッドにバインド

デザイン[SilverLight]

<UserControl 
    xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data"  
    x:Class="SilverlightApplication1.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480" Name="Base1">
  <StackPanel x:Name="LayoutRoot">
        <TextBox Text="{Binding ElementName=Base1,Path=SingleData}"></TextBox>
        <data:DataGrid ItemsSource="{Binding ElementName=Base1,Path=ParsonList.Parson}"></data:DataGrid>
  </StackPanel>
</UserControl>

コード[VB.net]

Imports System.Windows
Imports System.Windows.Controls
Imports System.Collections.ObjectModel

Namespace SilverlightApplication1
  Public Partial Class MainPage
    Inherits UserControl

    Public Property ParsonList As ParsonList
    Public Property SingleData As String

    Public Sub New()
      SingleData = "this is SingleData"
      Me.ParsonList = New ParsonList()
      Me.ParsonList.Parson.Add(New Parson() With { _
                                   .Name = "Name1", Key .Age = 10 })
      Me.ParsonList.Parson.Add(New Parson() With { _
                                   .Name = "Name2", Key .Age = 20 })
      Me.ParsonList.Parson.Add(New Parson() With { _
                                   .Name = "Name3", Key .Age = 30 })
      Me.ParsonList.Parson.Add(New Parson() With { _
                                   .Name = "Name4", Key .Age = 40 })
      Me.ParsonList.Parson.Add(New Parson() With { _
                                   .Name = "Name5", Key .Age = 50 })
      InitializeComponent()
    End Sub
  End Class

  Public Class ParsonList
    Public Property Parson As ObservableCollection(Of Parson)
    Public Sub New()
      Me.Parson = New ObservableCollection(Of Parson)()
    End Sub
  End Class

  Public Class Parson
    Public Property Name As String
    Public Property Age As Integer
  End Class
End Namespace

ParsonListクラスの持つParsonクラスの配列を、データグリッドにバインドさせます。画面を描画する前にインスタンスを確保しないと上手い事表示されませんでした。

ParsonListクラスは、MainPageユーザーコントロールオブジェクトの持つメンバなので、バインディング記述中のElementNameはUserContorolの名前となります。