DataGridViewComboBoxColumn很慢很多项目

问题描述:

我有一个DataGrid,有几列。其中之一是DataGridViewComboBoxColumn。本专栏中有很多项目 - 超过1000个 - 我需要所有这些项目。所以分组不是一种选择 - 所有项目必须在那里,用户必须能够从所有项目中进行选择。 问题是,DataGridViewComboBoxColumn变得非常缓慢,当项目的数量约为1000,以上。这个问题是微软所熟知的,它可以追溯到Visual Studio 2005:http://connect.microsoft.com/VisualStudio/feedback/details/117024/datagridviewcomboboxcolumn-responds-very-slow-compared-with-the-stand-alone-combobox-controlDataGridViewComboBoxColumn很慢很多项目

问题仍然存在于Visual Studio 2010中。任何想法如何解决这个问题?

是否有可能用Data部分填充DataGridViewComboBoxColumn?我的意思是(这是功能完全在Access工作),当你点击DataGridViewComboBoxColumn,一些项目被显示(可以说,100项)。当您向下滚动到最新项目时,其他人将被加载(另一个100)等等。我没有看到任何其他选项使DataGridViewComboBoxColumn工作更快?问题是,如何实现这一点?有没有人遇到过这个问题?

Greetings,Frenky

+0

一般而言,您应该避免在ComboBox中加载超过50个项目,如果您有数百个项目无法使用...... –

+0

有了这样庞大的数据,您是否可以将其显示为对话框表单并获取选择(您可以选择显示/隐藏表格),并且可以更方便,因为有大面积可供选择 – V4Vendetta

+0

ComboBox可与数千个项目一起工作,并且非常实用。 DataGridViewComboBoxColumn也可用于 - 可以说 - 约800项。以上是什么,成为一个痛苦的问题 - 它太慢了,你需要等待几秒钟才能打开。 – FrenkyB

我假设您使用Windows Forms?如果可以切换到WPF,或者至少在Windows窗体应用程序中使用WPF数据网格(使用ElementHost)。

WPF可以利用虚拟化,并允许更多的项目没有滞后(因为它看起来没有渲染的项目,几乎和你所建议的一样)。

+0

是的,我正在使用Windows窗体。我无法切换到WPF,因为它是一个拥有10年开发经验的大型项目。 – FrenkyB