wpf 堆栈溢出异常错误

pod7payv  于 2022-11-18  发布在  其他
关注(0)|答案(2)|浏览(218)

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

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

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

ddrv8njm

ddrv8njm1#

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

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

2g32fytz2#

您需要设置
焦点丢失时的操作=“提交编辑”
用于您的radgridview标记

相关问题