我有DataGrid
一些DataGridTemplateColumn
,一些复杂的Binding Converter
,Style DataTrigger
并从EntityFramework
模型绑定一些行到DataGrid ItemsSource
后面的代码中。
问题是:在此Binding
过程UI
中冻结直到DataGrid ItemContainerGenerator
状态更改为ContainersGenerated
,那么解决方案是什么?
尝试将网格数据设置为“背景”优先级。这将提高响应能力,直到您需要解决其他问题为止。
Application.Current.Dispatcher.Invoke(p => this.GridDataItemsSource = data, DispatcherPriority.Background);
如果将转换器,触发器等混合在一起使用时,放慢了网格中数据的显示速度,请尝试首先将网格设置为订单项的空集合,然后将一个订单项一个一个地插入到网格中在BackgroundPriority上使用分派器
this.GridDataItemsSource = new ObservableCollection<MyLineItems();
foreach(var item in _lineItems)
{
Application.Current.Dispatcher.Invoke(_ => this.GridDataItemsSource.Add(item), DispatcherPriority.Background);
}
效果应该是看到每个新项目都很快更新了网格,并且您的视图应保持响应状态。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句