Awesome! Here is another way to bind a list to datagrid using XAML
Code:
 <DataGrid AutoGenerateColumns="False" Height="172" 
                      HorizontalAlignment="Stretch" 
                      Name="dgSkypeMate" VerticalAlignment="Top" HorizontalGridLinesBrush="#FFCECBCB"
                  VerticalGridLinesBrush="#FFCECBCB" MinRowHeight="10" FontFamily="Times New Roman"
                  FontSize="13" FontStretch="Normal"
                  Background="Azure" RowBackground="White"  AlternatingRowBackground="Lavender"
                  HorizontalScrollBarVisibility="Visible" 
                  VerticalScrollBarVisibility="Visible"
                  IsReadOnly="True" ItemsSource="{Binding}" 
                  Foreground="Black" SelectionChanged="dgSkypeMate_SelectionChanged" Margin="7,0,11,0" 
                  BorderBrush="#FFC4C4C4"
                  ItemContainerStyle="{StaticResource alternatingDataGridItemStyle}" 
                      UseLayoutRounding="True" 
                      ColumnHeaderHeight="33"
                      ContextMenuService.ShowOnDisabled="False"                      
                      >
                <DataGrid.Columns>
                    <DataGridTextColumn Header="Skypemate ID" MinWidth="100" Width="150" Binding="{Binding Path=idStr}" />
                    <DataGridTextColumn Header="Display name" Binding="{Binding Path=dispStr}" MinWidth="120" Width="220" />
                    <DataGridTextColumn Header="Last Online" MinWidth="100" Width="150" Binding="{Binding Path=lastOnlineStr}" />
                </DataGrid.Columns>
            <DataGrid.ContextMenu>
                <ContextMenu Name="conmenu" IsEnabled="True">
                    <MenuItem Header="Delete" Click="MenuItem_Click"/>
                </ContextMenu>
            </DataGrid.ContextMenu>
        </DataGrid>
That is a piece I took from my current tiny do-it-myself project. "Binding Path= [name of an existing object you want to display your data through and with its value]"