我有 a DataGrid,它绑定到 a List: _bhaList。

现在,我编写了一个允许用户选择网格上的项目并将其向上移动的方法。当它向上移动时,该No.列会更新以显示它的当前位置。但是,在这种特殊情况下,我有 3 个项目,如果我选择No. 2并将其向上移动,它No. 1确实No. 3会No. 4与5.

这是我尝试过的代码:
var oldIndex = grdBha.SelectedIndex;
var newIndex = oldIndex - 1;
var bha = _bhaList[oldIndex];
_bhaList.RemoveAt(oldIndex);
bha.Number = oldIndex;
_bhaList.Insert(newIndex, bha);
for (var i = newIndex + 1; i <= _bhaList.Count; i++)
{
if (i != _bhaList.Count)
{
_bhaList[i].Number += 1;
}
}
我在for循环中尝试了不同的变体,但没有成功。
我有一种感觉,这将是一件非常简单的事情,但我的大脑并没有看到它。