Wpf ItemsSource渲染延迟

Wpf ItemsSource渲染延迟,wpf,performance,binding,datagrid,rendering,Wpf,Performance,Binding,Datagrid,Rendering,当我在Datagrid上设置.ItemSource()时,调用几乎立即返回,但在呈现实际行之前有很大的延迟。这是非常明显的,我想知道为什么会发生这种情况,因为所有其他渲染操作都会立即发生。例如,滚动速度非常快,删除/重新排序列会立即呈现。因此,此延迟仅在设置新的.ItemsSource时发生。datagrid没有自定义样式/触发器/模板,因此我无法理解为什么渲染需要如此长的时间。如果我将窗口调整到非常小的大小,延迟就消失了,因此不是绑定本身慢。这取决于几个原因:数据源的速度有多快,其中有多少行,

当我在Datagrid上设置.ItemSource()时,调用几乎立即返回,但在呈现实际行之前有很大的延迟。这是非常明显的,我想知道为什么会发生这种情况,因为所有其他渲染操作都会立即发生。例如,滚动速度非常快,删除/重新排序列会立即呈现。因此,此延迟仅在设置新的.ItemsSource时发生。datagrid没有自定义样式/触发器/模板,因此我无法理解为什么渲染需要如此长的时间。如果我将窗口调整到非常小的大小,延迟就消失了,因此不是绑定本身慢。

这取决于几个原因:数据源的速度有多快,其中有多少行,最重要的一个:您在数据网格中使用分组吗?如果是这样的话,DataGrid控件中存在一个已知的错误,这使得它在处理大数据和分组时速度非常慢。

我不使用分组,我在绑定到的对象的属性中添加了调试语句,并在设置ItemsSource后立即打印,直到很久以后才完成渲染,因此,这似乎证实了不是绑定速度慢。渲染复杂吗(大数据模板、长动画、大图片、颜色渐变、a.s.o.)不,它只是简单的标准数据网格,没有任何自定义。帮助您的最佳方式是,当您提供一些示例代码时。您解决了这个问题吗?@RobotMess是的,在某种程度上,但我记不起怎么做了。我相信这与使用.DataSource()而不是.ItemSource()有关,但我不确定。