首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Devexpress - Xtragrid : ArgumentOutOfRangeException

Devexpress - Xtragrid : ArgumentOutOfRangeException
EN

Stack Overflow用户
提问于 2014-06-05 12:37:46
回答 1查看 249关注 0票数 0

让我先概述一下情况:我们有一个应用程序,可以监视从&到文件服务器的文件传输。当用户传输一个/多个文件时,复制的结果将显示在概述中,其中Xtragrid-Gridcontrol显示所有文件,如果副本成功与否。

如果de是,则显示一个组合框选择所需的操作(忽略、重试、链接、.)。此组合框使用事件CustomRowCellEdit设置。

来自该CustomRowCellEdit的代码示例:

代码语言:javascript
运行
复制
        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在显示表单时(尽管已经设置了数据源)时仍然在加载.If,但质量有时很大,用户过早地将与xtragrid交互(同时仍然加载),然后我们得到XtragridArgumentOutOfRangeException异常。(由于可视组件的数据源仍在更改)

所需的解决方案:

我们应该防止用户在网格仍然加载时与其交互(看起来很明显)。

不起作用的解决方案:

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

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

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

谢谢大家抽出时间

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

Documentation: RowCellEdit

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-05 18:04:35

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

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

代码语言:javascript
运行
复制
myGrid.DataSource = Nothing
Application.DoEvents
FillDataTableWithLoadsOfRows(myDataTable)
myGrid.DataSource = myDataTable
' ...
'Whatever actions to do that require the data to be in the grid
' ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24060444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档