.net应用程序出现问题,我试图从DataTable单元中获取一个值并将其转换为布尔值。
DataTable绑定到DataGridView,并且单元格是CheckBox。
当我检查该单元格是否为null时,它返回为非null。但是,当我尝试获取该值时,它不返回任何内容,也不会将其强制转换为布尔值。
任何帮助表示赞赏。
private void dgvItems_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 2 || e.ColumnIndex == 3)
{
var test = dtItems.Rows[e.RowIndex][e.ColumnIndex];
if (test != null)
{
if ((bool)test)
{
MessageBox.Show("true");
}
else
{
MessageBox.Show("false");
}
}
else
{
MessageBox.Show("null");
}
}
}
在(bool)测试中抛出异常:
System.InvalidCastException:'指定的转换无效。'
答案 0 :(得分:1)
DataGrid单元格为ThreeWay复选框。无法将它们强制转换为布尔。
尝试布尔?代替
bool? testValue=(bool?) dtItems.Rows[e.RowIndex][e.ColumnIndex];
if (testValue!=null&&testValue)
{
MessageBox.Show("true");
}
else
{
MessageBox.Show("false");
}