将复选框列添加到DataGrid

时间:2012-10-25 20:16:17

标签: c# wpf wpf-controls wpfdatagrid

我正在尝试在WPF中的数据网格控件中添加checkboxcolum。

我在Windows.Forms中完成了这项工作并且效果非常好。

所以现在我想在WPF中编写我的新程序。

我想做的方式: 数据将来自数据库作为数据集。

某些字段包含我想要显示为复选框的值。 现在我已将datagrid autocreatecolumn设置为true,将显示数据。

现在我想删除显示值的列,并添加一个复选框列。

这可能还是我应该通过datatemplate创建列?

2 个答案:

答案 0 :(得分:1)

WPF DataGrid提供了一个名为AutoGenerateColumns的功能,可根据数据对象的公共属性自动生成列。它根据值的类型生成以下类型的列,您无需执行任何操作。:

1. TextBox columns for string values
2. CheckBox columns for boolean values
3. ComboBox columns for enumerable values
4. Hyperlink columns for Uri values

答案 1 :(得分:0)

您可以订阅AutoGeneratingColumn事件并更改正在生成的列:

public MyWindow(){
       myDataGrid.AutoGeneratingColumn += AutoGeneratingColumnHandler;
}

private void AutoGeneratingColumnHandler(object sender, DataGridAutoGeneratingColumnEventArgs e) {
        var bindingPath = ((e.Column as DataGridBoundColumn).Binding as Binding).Path.Path;
        if (bindingPath == "MYPATH") {
              var checkBoxColumn = new DataGridCheckBoxColumn();
              checkBoxColumn.Binding = new Binding(bindingPath);
              e.Column = checkBoxColumn;
        }
 }