在WPF中移除数据表中的最后一行时,我得到一个超出范围异常的数组索引。删除其他行是可以的,但尝试删除最后一行会触发此问题。这有什么不对?
public void removeRow(int index)
{
if (index < 0)
{
index = 0;
}
myDataTable.Rows.RemoveAt(index);
myDataTable.AcceptChanges();
}
我还尝试了selectedDataRow.delete()
和myDataTable.remove(selectedDataRow)
,但他们遇到了同样的问题。
答案 0 :(得分:2)
行号为0索引,因此你可能会被一个人拒之门外。您可以将其添加到支票
if (index < 0)
{
index = 0;
}
else if (index >= myDataTable.Rows.Count)
{
index = myDataTable.Rows.Count - 1;
}
删除行后,该行中的所有数据都将丢失。您还可以调用DataRow类的Delete方法来标记要删除的行。调用RemoveAt与调用Delete然后调用AcceptChanges相同。