Telerik RadGridView.CommitEdit()StackOverflow Exception

时间:2017-08-08 17:07:27

标签: c# wpf telerik edit radgridview

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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