WPFでDataGridを使ってみる記事となります。
実際にDataGridを使うための操作とC#のサンプルコードを以下に記します。
プロジェクトの作成手順など不要でサンプルコードを見たい方は サンプルコード をクリックしてください。
以下、プロジェクトの作成、DataGridサンプルコード作成および実行までの手順を記します。
以下の手順でDataGridを使ったプロジェクトを作成します。
DataGridに表示する情報を格納する DataGridItem クラスを新規に作成します。
クラスはDataGridの1行に相当するデータを保持します。
以下のようなデータを保持することにします。
namespace DataGridSample { internal class DataGridItem { public DataGridItem(string prefectures, string cities, string address) { Prefectures = prefectures; Cities = cities; Address = address; } public string Prefectures { get; set; } public string Cities { get; set; } public string Address { get; set; } } }
MainWindow.xaml.cs にDataGridに表示する都道府県、市区町村、住所の値を持つ DataGridItem オブジェクトを作成します。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace DataGridSample { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); List<DataGridItem> dataGridItems = new List<DataGridItem>(); dataGridItems.Add(new DataGridItem("東京都", "千代田区", "千代田")); dataGridItems.Add(new DataGridItem("千葉県", "千葉市", "中央区")); dataGridItems.Add(new DataGridItem("埼玉県", "さいたま市", "浦和区")); dataGridItems.Add(new DataGridItem("神奈川県", "横浜市", "中区")); dataGridItems.Add(new DataGridItem("群馬県", "前橋市", "大手町")); dataGridItems.Add(new DataGridItem("栃木県", "宇都宮市", "塙田")); dataGridItems.Add(new DataGridItem("茨城県", "水戸市", "笠原町")); dataGridItems.Add(new DataGridItem("山梨県", "甲府市", "丸の内")); } } }
画面定義である、MainWindow.xaml をプログラミングします。
<Grid> <DataGrid d:ItemsSource="{d:SampleData ItemCount=5}"/> </Grid>
<Grid> <DataGrid Name="PrefItems" AutoGenerateColumns="False"> <DataGrid.Columns> <DataGridTextColumn Header="都道府県" Binding="{Binding Prefectures}"/> <DataGridTextColumn Header="市区町村" Binding="{Binding Cities}"/> <DataGridTextColumn Header="住所" Binding="{Binding Address}"/> </DataGrid.Columns> </DataGrid> </Grid>
public MainWindow() { InitializeComponent(); List<DataGridItem> dataGridItems = new List<DataGridItem>(); dataGridItems.Add(new DataGridItem("東京都", "千代田区", "千代田")); dataGridItems.Add(new DataGridItem("千葉県", "千葉市", "中央区")); dataGridItems.Add(new DataGridItem("埼玉県", "さいたま市", "浦和区")); dataGridItems.Add(new DataGridItem("神奈川県", "横浜市", "中区")); dataGridItems.Add(new DataGridItem("群馬県", "前橋市", "大手町")); dataGridItems.Add(new DataGridItem("栃木県", "宇都宮市", "塙田")); dataGridItems.Add(new DataGridItem("茨城県", "水戸市", "笠原町")); dataGridItems.Add(new DataGridItem("山梨県", "甲府市", "丸の内")); }
public MainWindow() { InitializeComponent(); List<DataGridItem> dataGridItems = new List<DataGridItem>(); dataGridItems.Add(new DataGridItem("東京都", "千代田区", "千代田")); dataGridItems.Add(new DataGridItem("千葉県", "千葉市", "中央区")); dataGridItems.Add(new DataGridItem("埼玉県", "さいたま市", "浦和区")); dataGridItems.Add(new DataGridItem("神奈川県", "横浜市", "中区")); dataGridItems.Add(new DataGridItem("群馬県", "前橋市", "大手町")); dataGridItems.Add(new DataGridItem("栃木県", "宇都宮市", "塙田")); dataGridItems.Add(new DataGridItem("茨城県", "水戸市", "笠原町")); dataGridItems.Add(new DataGridItem("山梨県", "甲府市", "丸の内")); PrefItems.ItemsSource = dataGridItems; }以下を追加しました。
PrefItems.ItemsSource = dataGridItems;
ビルドして実行してみます。
ビルドエラーが発生するようであれば、プログラムや操作に誤りがないか確認してください。
以上、DataGridのサンプルとなります。