|
|
1
5
如上所述,在数据绑定场景中,似乎不可能更改布尔值的视觉外观。 甚至 D级ataGridViewCellStyle.FormatProvider提供程序 无法正确处理以下类型系统.Int32, 系统.Int64, 系统分贝等等。
因此我找到了一个适合我的解决方法。也许这不是最好的解决方案,但目前它适合我的需要。 DataGridView.ColumnAdded 事件和替换 DataGridViewCheckBox列 DataGridViewTextBoxColumn . 之后我用 细胞形成 事件(由Microsoft推荐,请参阅上面的链接)来格式化源数据。
|
|
|
2
3
看来这是不可能的,所以我作弊了。我向业务对象添加了一个只读属性,该属性返回一个基于布尔属性的字符串。我只是在DGV中隐藏了boolean列并显示了string属性。 |
|
|
3
0
编辑显示布尔值的列,使ColumnType属性=DataGridViewTextBoxColumn。
在设计器中进行以下更改:
将列添加到DGV时,可以通过编程方式设置ColumnType:
代码来自 MSDN |
|
4
0
一种有用的方法是使用DataGridViewComboBoxColumn将布尔值解码为所需的任何字符串;它还保留了编辑值的功能,甚至可以为用户提供快捷方式,如果您确保显示值列表具有不同的首字母(用户可以聚焦单元格并按键盘上的单个键来更改组合选择)。 组合列不仅仅限于布尔值-任何固定的值列表、查找、枚举等都是很好的候选。这是连接布尔值的方式;它使用string/bool的元组作为组合查找的后备存储:
这个网格现在将显示一个组合框,它曾经显示过一个复选框,编辑组合框将更改主数据表中的布尔值 如果您的datagridview是在forms designer中设计的,那么最简单的方法可能是向强类型数据集添加一个DispVal表,然后它在选择器中成为一个“项目列表实例”,允许您为combo列选择数据源 |