.net Devexpress-Xtragrid:ArgumentOutOfRangeException

.net Devexpress-Xtragrid:ArgumentOutOfRangeException,.net,vb.net,devexpress,xtragrid,gridcontrol,.net,Vb.net,Devexpress,Xtragrid,Gridcontrol,让我先概述一下情况: 我们有一个监控文件服务器之间文件传输的应用程序。当用户传输一个/多个文件时,复制结果将显示在概览中,其中Xtragrid Gridcontrol显示所有文件以及复制是否成功 当反复制未成功时,将显示一个组合框,用于选择所需操作(忽略、重试、链接等)。此组合框使用事件CustomRowCellEdit 来自该CustomRowCellEdit的代码示例: Dim myCb As RepositoryItemLookUpEdit = New Repository

让我先概述一下情况: 我们有一个监控文件服务器之间文件传输的应用程序。当用户传输一个/多个文件时,复制结果将显示在概览中,其中Xtragrid Gridcontrol显示所有文件以及复制是否成功

当反复制未成功时,将显示一个组合框,用于选择所需操作(忽略、重试、链接等)。此组合框使用事件
CustomRowCellEdit

来自该CustomRowCellEdit的代码示例:

        Dim myCb As RepositoryItemLookUpEdit = New RepositoryItemLookUpEdit
        myCb.DataSource = GenerateActionlistForDoubleFolder()
        myCb.NullValuePrompt = Documentum.Common.Tools.Translate(Tools.Config(m_Docbase), "[SELECT_ACTION]")
        myCb.NullText = Documentum.Common.Tools.Translate(Tools.Config(m_Docbase), "[SELECT_ACTION]")
        e.RepositoryItem = myCb
问题:

正在复制越来越多的文件。数量有时太大,以至于显示表单时,
Xtragrid Gridcontrol
通常仍在加载(尽管数据源已经设置)。如果用户过早地与Xtragrid Gridcontrol进行交互(仍在加载时)然后我们得到
Xtragrid
ArgumentOutOfRangeException
异常。(由于可视化组件的数据源仍在更改)

所需的解决方案:

我们应该防止用户在网格仍处于加载状态时与网格交互(看起来很明显)

无效解决方案:

设置数据源时,将触发事件
DataSourceChanged
加载所有行时不

每次触发事件
CustomRowCellEdit
时简单地启用/禁用网格->大规模性能损失

问题: 有人也遇到过这个问题吗?是否有一种完全可靠的方法来检测Xtragrid是否已完全加载其数据源(并将其可视化)?或者是否有一种解决方法,我不再需要使用
CustomRowCellEdit
? (也欢迎来自其他类型网格的解决方案)

谢谢大家抽出时间

注意:不要要求更多代码。问题不在于代码,而在于我对
Gridcontrol事件的使用


文档:

我有时在应用程序中也会遇到这种情况。我主要将网格绑定到
DataTable
s,我发现最有效的解决方案是,在加载数据时,将
gridControl.DataSource
设置为
null/Nothing
并调用
Application.DoEvents()
。填充基础数据源后,将
数据源
设置回源

这样做的目的是实现一种确定的方式来判断何时加载数据。下面是一个基本的示例实现

myGrid.DataSource = Nothing
Application.DoEvents
FillDataTableWithLoadsOfRows(myDataTable)
myGrid.DataSource = myDataTable
' ...
'Whatever actions to do that require the data to be in the grid
' ...

我不太理解您对问题的描述,但我记得我曾经与XtraGrid有过某种问题,通过使用GridControl.ForceInitialize解决了这种问题。例如:显然你很了解它。您提供的解决方案也涉及相同的问题领域。然而,这并没有解决这个特殊的问题。但它确实解决了我的另一个应用程序中的一个bug。谢谢你,伙计!巧妙的!这为我解决了问题!现在,在两行代码的帮助下,不再出现异常/问题!谢谢你,伙计!