我们有很多DataGrid
具有动态数据绑定,所以我们总是使用AutoGenerateColumns=True
. For bool
列生成一个DataGridCheckBoxColumn
但对于可为 null 的 bool (bool?
在 C# 中)生成默认值DataGridTextColumn
。有什么办法强制DataGrid
自动生成一个DataGridCheckBoxColumn
对于可为空的布尔值?不喜欢依赖于实现的黑客。还接受一些隐藏代码,例如AutoGeneratingColumn
event.
您应该注册 AutoGenerateColumn 事件并根据列类型更改生成的列,如下所示:
private void dataGrid1_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if (e.PropertyType == typeof(bool?))
{
DataGridCheckBoxColumn checkBoxColumn=new DataGridCheckBoxColumn();
checkBoxColumn.Header = e.Column.Header;
checkBoxColumn.Binding = new Binding(e.PropertyName);
checkBoxColumn.IsThreeState = true;
// Replace the auto-generated column with the checkBoxColumn.
e.Column = checkBoxColumn;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)