1つ前のエントリの続き。DataGridTextBoxColumn以外のカラムも使ってみようと思う。とりあえず、CheckBoxから使ってみたいと思う。
CheckBoxなので、bool型のデータを表示するのが一番素直だと思うので、PersonクラスにC#が好きかどうかをあらわすプロパティを追加してみた。
namespace WpfDataTableSample
{
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
// C#好きかどうかのフラグ
public bool CSharper { get; set; }
}
}
DataContextに突っ込むデータもちょいと変更。
// 5人に1人は、C#大好き
DataContext = Enumerable.Range(10, 50).Select(i =>
new Person { Name = "田中 太郎 no" + i, Age = i % 50, CSharper = i % 5 == 0 }).ToList();
XAMLにもDataGridCheckBoxColumnの定義を追加した。
<!-- 自動でカラムを生成しないように指定 -->
<WPFToolkit:DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
<WPFToolkit:DataGrid.Columns>
<!-- 名前の表示 -->
<WPFToolkit:DataGridTextColumn DataFieldBinding="{Binding Name}"
Header="なまえ" />
<!-- 年齢の表示 StringFormatでフォーマットも指定してみた -->
<WPFToolkit:DataGridTextColumn DataFieldBinding="{Binding Age, StringFormat=000歳}"
Header="ねんれい" />
<!-- CheckBoxを使うときも基本的にTextBoxと同じようにいける -->
<WPFToolkit:DataGridCheckBoxColumn DataFieldBinding="{Binding CSharper}"
Header="C#大好き?" />
</WPFToolkit:DataGrid.Columns>
</WPFToolkit:DataGrid>
コメントにもあるように、基本的にTextBoxを表示するときと同じ感じで使える。実行すると予想通りの結果が得られる。
チェックボックスがいい感じ。
ここまでも順調だ。マニュアル(あるのかな?)見ないで、まだまだいけそうだ。