ARZ*_*ARZ 0 wpf user-interface binding datagrid .net-4.0
我有DataGrid一些DataGridTemplateColumn,复杂的Binding Converter和一些Style DataTrigger绑定从EntityFramework模型到DataGrid ItemsSource代码后面的一些行.
问题是:在整个Binding过程中UI一直处于冻结DataGrid ItemContainerGenerator 状态ContainersGenerated,直到状态变为,所以解决方案是什么?
尝试以背景优先级设置网格数据.这应该可以提高响应速度,直到您可以解决其他任何需要优化的问题.
Application.Current.Dispatcher.Invoke(p => this.GridDataItemsSource = data, DispatcherPriority.Background);
Run Code Online (Sandbox Code Playgroud)
如果您转换器的混合,触发器等当作为一个大疙瘩应用正在放缓在网格中的数据的出现,尝试最初是由一个网格设置为您的订单项的空白集合,然后插入线的项目之一并入电网在BackgroundPriority上使用Dispatcher
this.GridDataItemsSource = new ObservableCollection<MyLineItems();
foreach(var item in _lineItems)
{
Application.Current.Dispatcher.Invoke(_ => this.GridDataItemsSource.Add(item), DispatcherPriority.Background);
}
Run Code Online (Sandbox Code Playgroud)
效果应该看到电网正在更新很快,每个新的项目,您认为应该保持响应.