C# 将复选框列添加到数据网格

C# 将复选框列添加到数据网格,c#,wpf,wpf-controls,wpfdatagrid,C#,Wpf,Wpf Controls,Wpfdatagrid,我试图在WPF中的datagrid控件中添加checkboxcolum 我已经在Windows.Forms中完成了这项工作,它工作得非常好 所以现在我想用WPF编写我的新程序,以备将来使用 我想做的事: 数据将作为数据集来自数据库 有些字段有我想显示为复选框的值。 现在我已经将datagrid autocreatecolumn设置为true,数据将显示出来 现在我想删除显示该值的列,并添加一个复选框列 这是可能的,还是我应该通过datatemplate创建列?您可以将事件分为自动生成列事件,并更

我试图在WPF中的datagrid控件中添加checkboxcolum

我已经在Windows.Forms中完成了这项工作,它工作得非常好

所以现在我想用WPF编写我的新程序,以备将来使用

我想做的事: 数据将作为数据集来自数据库

有些字段有我想显示为复选框的值。 现在我已经将datagrid autocreatecolumn设置为true,数据将显示出来

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


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

您可以将事件分为
自动生成列
事件,并更改正在生成的列:

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;
        }
 }

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

我不认为你可以在打开AutoGenerateColumn的情况下这样做。。。。您必须单独定义每一列OK。这不是我想听到的答案。是否可以通过从查询中获取db fieldtype在运行时创建datagrid列。我已经编辑了您的标题。请看“”,其中的共识是“不,他们不应该”。谢谢淡水河谷!它工作得很好。我认为对于columnbox,这将是相同的代码,但是使用DataGridColumnBoxColumn。