DataGrid と DataTable [- DataGrid と DataTable]
画面サイズに連動するDataGridにデータを表示するサンプル
DataGridと、DataTableを使ってデータを表示する。
■XAML
<DataGrid x:Name="dgridList" HorizontalAlignment="Stretch" Margin="0,35,0,0" VerticalAlignment="Stretch" AutoGenerateColumns="False" DataContext="{Binding}" ItemsSource="{Binding}"/>
☆HorizontalAlignment="Stretch" VerticalAlignment="Stretch" で、画面サイズにDataGridのサイズを連動させる
☆「AutoGenerateColumns="False" ItemsSource="{Binding}"」が重要
■CS
メンバ
// DataTable宣言
private DataTable m_dtableList;
メンバ関数内
// DataGridにカラム追加
dgridList.Columns.Add(new DataGridTextColumn() { Header = "IP Address", IsReadOnly = false, FontSize = 12, Width = 100, Binding = new Binding("IPAddress") });
dgridList.Columns.Add(new DataGridTextColumn() { Header = "PortNo", IsReadOnly = false, FontSize = 12, Width = 60, Binding = new Binding("Port") });
// DataTableにカラム追加
m_dtableList = new DataTable("DataGridTest");
m_dtableList.Columns.Add(new DataColumn("IPAddress", typeof(string)));// 文字列
m_dtableList.Columns.Add(new DataColumn("Port", typeof(int)));// 数値
// データ追加
DataRow newRowItem;
for (int i = 0; i < 10; i++)
{
newRowItem = m_dtableList.NewRow();
newRowItem["IPAddress"] = "IP=" + i.ToString();
newRowItem["Port"] = i.ToString();
m_dtableList.Rows.Add(newRowItem);
}
// データグリッドに、データテーブルをバインド
dgridList.DataContext = m_dtableList;
dgridList.Items.Refresh();