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を使おう(前篇)でした。次回は、闇(!?)をお届けします…
[…] さて、前回の続き。 DataGridとDataTableは非常に相性がよいのですが、「AutoGenerateColumn=”True”」で使う際困った問題があります。 例えば、前回のソースコードを、次のように変更してみます。 […]
ピンバック by DataGridとDataTable(その2)【WPF編】 | 泥庭 — 2014年12月5日 @ 9:39 午後