我在对未绑定的 DataGridView 进行排序时遇到了一些麻烦。我正在从 StreamReader 填充 DataTable,然后手动将项目从 DataTable 传输到 DataGridView。DataGridView 上的 AllowUserToAddRows 属性设置为 true。
这将填充 DataGridView,没有任何麻烦。我可以通过单击列标题对列进行排序,没有任何问题。如果我在新行的第一列中添加一个值,然后尝试对该列进行排序,我会收到一条错误消息,显示:“对象必须是字符串类型。”
我尝试了不同的方法将列中的所有单元格转换为相同的数据类型,但我无法解决这个问题。我在这里错过了什么吗?
在表单加载事件中,我有以下代码:
dgvStartingGrid.Columns(0).ValueType = GetType(Integer)
在将 StreamReader 中的值输入 DataGridView 之前,我还要确保它们是整数类型:
If IsNumeric(strColumnValue) Then
dtbFillGrid.Rows(intCurrentRow).Item("Starting Position") = strColumnValue
End If
我也试过:
dtbFillGrid.Rows(intCurrentRow).Item("Starting Position") = CInt(strColumnValue)
什么可能导致这个问题?我已经验证该列中的所有单元格都具有相同的数据类型,但它仍然给我一个错误,并且我确定问题出在该列上。
其他列是字符串类型,按列标题对它们进行排序没有任何问题,除非我单击第一列,然后引发异常。