AutoGeneratingColumn イベントを処理できます。
xaml に次を追加します。
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="True"
AutoGeneratingColumn="DataGrid_OnAutoGeneratingColumn"></DataGrid>
コード ビハインド:
private void DataGrid_OnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if (e.PropertyType == typeof (Int32))
{
if (e.Column != null)
{
var dgct = new DataGridTemplateColumn();
var cName = e.Column.Header as string;
var b = new Binding(cName);
var sfactory = new FrameworkElementFactory(typeof(TextBlock));
sfactory.SetValue(TextBlock.TextProperty, b);
sfactory.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Right);
var cellTemplate = new DataTemplate();
cellTemplate.VisualTree = sfactory;
dgct.CellTemplate = cellTemplate;
dgct.Header = cName;
dgct.SortMemberPath = cName;
e.Column = dgct;
}
}
... *and so on for all your data types*
}
次のリンクを確認できます。
http://msdn.microsoft.com/en-us/library/cc903950(v=vs.95).aspx
http://mareinsula.wordpress.com/2011/06/06/tips-on-wpf-autogenerating-データグリッド/