0

我正在尝试在 WPF 的数据网格控件中添加一个复选框列。

我已经在 Windows.Forms 中完成了这项工作,而且效果很好。

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

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

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

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

这可能还是我应该通过数据模板创建列?

4

2 回答 2

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
于 2012-10-27T10:41:56.473 回答
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;
        }
 }
于 2012-10-26T05:19:30.607 回答