WPF:DataGrid中的CheckBox

时间:2014-01-12 23:57:42

标签: c# wpf checkbox datagrid

我正在动态填充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,我还尝试了DataGridCheckBoxColumnDataGridTemplate,但只有对象的引用才会出现。那么将CheckBox放在DataGrid代码中的正确方法是什么? (我知道如何在 XAML 中做到这一点,但我想知道如何从后面的代码中做到这一点)

1 个答案:

答案 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());
}