C# 诱使滚动条滚动已卸载的项目

C# 诱使滚动条滚动已卸载的项目,c#,wpf,datagrid,C#,Wpf,Datagrid,我在服务器上有一个潜在的巨大xml数据文件。我希望将数据加载到客户机上的datagrid中,以允许用户滚动xml文件中的项目并选择一个。由于潜在的巨大数据量,我真的不想获取整个XML文件并将其加载到datagrid中。由于这个原因,我试图给人的印象是,所有的数据都被加载了,而不是实际加载所有数据 我通过从滚动条捕获滚动事件并请求行currentScrollbarvalue to(currentScrollbarvalue+要显示的记录数)将xml加载到xmldataprovider并将其设置为d

我在服务器上有一个潜在的巨大xml数据文件。我希望将数据加载到客户机上的datagrid中,以允许用户滚动xml文件中的项目并选择一个。由于潜在的巨大数据量,我真的不想获取整个XML文件并将其加载到datagrid中。由于这个原因,我试图给人的印象是,所有的数据都被加载了,而不是实际加载所有数据

我通过从滚动条捕获滚动事件并请求行
currentScrollbarvalue to(currentScrollbarvalue+要显示的记录数)
将xml加载到xmldataprovider并将其设置为datagrid的数据源来实现这一点。我的问题是,我的数据网格在滚动时偶尔会闪烁灰色。我假设这是因为它在被分配的数据源之间呈现datagrid

基本上,我想知道我是否以正确的方式做这件事,如果是的话,是否有可能停止闪烁


如果您需要更详细的解释或任何代码发布,请让我知道

使用
VirtualMode
属性。这样,网格项仅在可见时才可见。 然后使用实现事件
CellValidating
来填充列表。 看

对于
DataGrid
,需要将
EnableRowVirtualization
属性设置为
true
。这仅适用于数据绑定


闪光灯可能正在重新喷漆,您可以通过创建OnPaint事件来测试这一点。问题是它不会一直闪烁。如果我在滚动条上单击向上/向下,它不会闪烁。只有当我按住滚动条并上下拖动滚动条以快速浏览记录时,才会出现闪烁。这是WPF datagrid,而不是datagridview。数据网格中是否有类似的东西。你能更详细地解释一下吗?