把一个DataSet绑定到自定义列类型的DataGrid中,DataSet中有一列是bool值, DataGrid中相应的列是一个DataGridBoolColumn,呈现为CheckBox。
想要达到的效果是:DataGrid除了CheckBox列可以由用户点击改变值,其它的都为只读,不能编辑。
看起来挺简单件事,把DataGrid的ReadOnly设置为true,DataGridBoolColumn的ReadOnly设置为false就行了嘛,可是不知道为什么,这样设置后,CheckBox就是不能点击,郁闷。
换一个方式,把除了DataGridBoolColumn的其它列的ReadOnly设置为true,DataGrid的ReadOnly为默认的false。这样是达到了效果,可是DataGrid下面多了一行空白行,用户可以填入数据添加新行,也不行。
最后google了一下,终于解决了:
把DataSet转变为DataView,把它绑定到DataGrid上,同时DataView有一个属性AllowNew,把它设置为false后,再用上面的方法,就OK了,CheckBox可点击,同时不能添加新行。
希望对大家有帮助。