DataGridのDataContextをDataTableにして、AutoGenerateColumns=”True”に設定して、XAMLでカラムを追加すると、追加したカラムが各行の最初に来てしまう。
ので、横着せず、<DataGrid.Columns>に全てのカラムをあらかじめ書いておかなければいけない。
動的にカラムの数などが変わる場合にどうするのかは知らない。

[XAML]


<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
  <DataGrid.Columns>
    <DataGridTextColumn Header="exam_id" Binding="{Binding exam_id}"/>
    <DataGridTextColumn Header="ID" Binding="{Binding pt_id}"/>
    <DataGridTextColumn Header="{x:Static properties:Resources.Name}" Binding="{Binding pt_name}"/>
    <DataGridTemplateColumn>
      <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
          <Button Content="{x:Static properties:Resources.Select}" />
        </DataTemplate>
      </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
  </DataGrid.Columns>
</DataGrid>