Telerik RadGridView.CommitEdit() StackOverflow 异常

Telerik RadGridView.CommitEdit() StackOverflow Exception

我目前有一个带有 Telerik 的 RadGridView 控件的 WPF 应用程序。我有一些列包含来自数据库的数据,而我还有另外三个自定义列用于输入数据。我现在的问题是,一旦我将数据输入到其中一列的单元格中,当我点击该单元格时,数据就会消失。我需要让我的应用程序提交这些更改,以免发生这种情况。我以为我在 CellEditEnded 事件中使用 gridView.CommitEdit(); 正确编码了它,但是当我输入数据并单击单元格外时会引发 Whosebug 异常。有谁能向我解释为什么会这样,以及这个问题的可能解决方案吗?我很难在网上找到很好的资源来解释如何做到这一点。下面是我的 CellEditEnded 事件代码:

private void gridView_CellEditEnded(object sender, GridViewCellEditEndedEventArgs e)
    {
        if(e.EditAction == GridViewEditAction.Commit)
        {
            gridView.CommitEdit();
        }
    }

如果有人能够帮助我理解我做错了什么,将不胜感激:)

您可以尝试使用布尔标志来防止事件处理程序一遍又一遍地调用 CommitEdit() 方法:

bool handle = true;
private void gridView_CellEditEnded(object sender, GridViewCellEditEndedEventArgs e)
{
    if (e.EditAction == GridViewEditAction.Commit && handle)
    {
        handle = false;
        gridView.CommitEdit();
        handle = true;
    }
}