我正在尝试在 WPF 的数据网格控件中添加一个复选框列。
我已经在 Windows.Forms 中完成了这项工作,而且效果很好。
所以现在我想在 WPF 中为将来编写我的新程序。
我想做的方式:数据将来自数据库作为数据集。
某些字段具有我想显示为复选框的值。现在我已经将 datagrid autocreatecolumn 设置为 true,将显示数据。
现在我想删除显示值的列并添加一个复选框列。
这可能还是我应该通过数据模板创建列?
我正在尝试在 WPF 的数据网格控件中添加一个复选框列。
我已经在 Windows.Forms 中完成了这项工作,而且效果很好。
所以现在我想在 WPF 中为将来编写我的新程序。
我想做的方式:数据将来自数据库作为数据集。
某些字段具有我想显示为复选框的值。现在我已经将 datagrid autocreatecolumn 设置为 true,将显示数据。
现在我想删除显示值的列并添加一个复选框列。
这可能还是我应该通过数据模板创建列?
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
您可以订阅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;
}
}