在WPF中移除数据表中的最后一行时索引超出范围

时间:2017-09-18 18:13:48

标签: c# wpf

在WPF中移除数据表中的最后一行时,我得到一个超出范围异常的数组索引。删除其他行是可以的,但尝试删除最后一行会触发此问题。这有什么不对?

public void removeRow(int index)
{
    if (index < 0)
    {
        index = 0;
    }
    myDataTable.Rows.RemoveAt(index);
    myDataTable.AcceptChanges();
}

我还尝试了selectedDataRow.delete()myDataTable.remove(selectedDataRow),但他们遇到了同样的问题。

1 个答案:

答案 0 :(得分:2)

行号为0索引,因此你可能会被一个人拒之门外。您可以将其添加到支票

if (index < 0)
{
    index = 0;
}
else if (index >= myDataTable.Rows.Count)
{
    index = myDataTable.Rows.Count - 1;
}

删除行后,该行中的所有数据都将丢失。您还可以调用DataRow类的Delete方法来标记要删除的行。调用RemoveAt与调用Delete然后调用AcceptChanges相同。