泥庭

2014年12月4日

DataGridとDataTable【WPF編】

Filed under: .NET, WPF — タグ: — yone64 @ 5:43 午後

DataTableといえば、遠い昔からあるあれですが、WPFでもDataSourceとして使えます。(DataSetは死んでください)

とりわけ、行と列の数が実行時までわかってないデータをDataGridに表示する際に使用するDataSourceとしては、この子より便利な子はまだない気がしています。
# もちろん、あらかじめ行がわかってる場合はObservableCollection<T>がそれなりに便利です。

さっそく、コードを見てみましょう。

var table = new DataTable();
table.Columns.Add("Column1");
table.Columns.Add("Column2");
table.Columns.Add("Column3");
table.Columns.Add("Column4");

for (int i = 0; i < 20; i++)
{
    var row = table.NewRow();
    for (int j = 0; j < table.Columns.Count; j++)
    {
        row[j] = "[" + (i + 1) + "," + (j + 1) + "]";
    }
    table.Rows.Add(row);
}
this.DataContext = table;
<Window x:Class="WpfApplication5.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <DataGrid ItemsSource="{Binding}" AutoGenerateColumns="True" />
    </Grid>
</Window>

上記で、以下のようなダイアログが表示されます。

キャプチャ

いやぁ、簡単ですね。というわけで、DataTableを使おう(前篇)でした。次回は、闇(!?)をお届けします…

1件のコメント »

  1. […] さて、前回の続き。 DataGridとDataTableは非常に相性がよいのですが、「AutoGenerateColumn=”True”」で使う際困った問題があります。 例えば、前回のソースコードを、次のように変更してみます。 […]

    ピンバック by DataGridとDataTable(その2)【WPF編】 | 泥庭 — 2014年12月5日 @ 9:39 午後


RSS feed for comments on this post. TrackBack URI

コメントを残す

WordPress.com で無料サイトやブログを作成.