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