我正在动态填充DataGrid
,我还尝试将一些列设为CheckBox
列。而且我这样做:
DataTable dt = new DataTable();
dt.Columns.Add("First Column", typeof(String));
dt.Columns.Add("Second Column", typeof(Decimal));
dt.Columns.Add("Third Column", typeof(CheckBox));
foreach (var i in Query)
{
List<Object> temp = new List<Object>();
temp.Add(i.FirstValue);
temp.Add(i.SecondValue);
temp.Add(new CheckBox { IsChecked = false});
dt.Rows.Add(temp.ToArray());
}
DataGrid1.ItemsSource = dt.DefaultView;
不幸的是,我在DataGrid中看到的是System.Windows.Controls.CheckBox
,我还尝试了DataGridCheckBoxColumn
和DataGridTemplate
,但只有对象的引用才会出现。那么将CheckBox
放在DataGrid
代码中的正确方法是什么? (我知道如何在 XAML 中做到这一点,但我想知道如何从后面的代码中做到这一点)
答案 0 :(得分:2)
将第三列定义为bool
类型。 WPF应自动将其呈现为复选框。
示例:
DataTable dt = new DataTable();
dt.Columns.Add("First Column", typeof(String));
dt.Columns.Add("Second Column", typeof(Decimal));
dt.Columns.Add("Third Column", typeof(bool));
foreach (var i in Query)
{
List<Object> temp = new List<Object>();
temp.Add(i.FirstValue);
temp.Add(i.SecondValue);
temp.Add(false); // false => unchecked, true => checked.
dt.Rows.Add(temp.ToArray());
}