Wpf数据网格don';t刷新动态
我有以下代码,其中Wpf数据网格don';t刷新动态,wpf,multithreading,datagrid,Wpf,Multithreading,Datagrid,我有以下代码,其中TabResultadoBusqueda是一个Datagrid 我的问题是,当我点击这个窗口的一个按钮时,它会被冻结,直到操作完成 我希望用户可以在加载Datagrid时做其他事情,因为执行操作的时间是1分钟 示例代码事件在一个按钮中单击: TabResultadoBusqueda.ItemsSource = null; TabResultadoBusqueda.ItemsSource = (IEnumerable<articuloPOCO>)cambioDeA
TabResultadoBusqueda
是一个Datagrid
我的问题是,当我点击这个窗口的一个按钮时,它会被冻结,直到操作完成
我希望用户可以在加载Datagrid
时做其他事情,因为执行操作的时间是1分钟
示例代码事件在一个按钮中单击:
TabResultadoBusqueda.ItemsSource = null;
TabResultadoBusqueda.ItemsSource = (IEnumerable<articuloPOCO>)cambioDeArticuloListaAArticuloPOCOlista(m.todosArticulosPAGINADOS(0, 50));
TabResultadoBusqueda.Dispatcher.BeginInvoke(DispatcherPriority.Background,
new Action(
() => aaaa1()
)
);
TabResultadoBusqueda.ItemsSource=null;
TabResultadoBusqueda.ItemsSource=(IEnumerable)cambioDeArticuloListaAArticuloPOCOlista(m.todosArticulosPAGINADOS(0,50));
TabResultadoBusqueda.Dispatcher.BeginInvoke(DispatcherPriority.Background,
新行动(
()=>aaaa1()
)
);
AA1的代码:
for (int j = 2; j < 15; j++)
{
((List<articuloPOCO>)TabResultadoBusqueda.ItemsSource).AddRange((IEnumerable<articuloPOCO>)cambioDeArticuloListaAArticuloPOCOlista(m.todosArticulosPAGINADOS(j, 50)));
TabResultadoBusqueda.Items.Refresh();
}
for(int j=2;j<15;j++)
{
(列表)TabResultadoBusqueda.ItemsSource)AddRange((IEnumerable)cambiodearticulolistaaaarticulopocolista(m.todosArticulosPAGINADOS(j,50));
TabResultadoBusqueda.Items.Refresh();
}
任何帮助都很好。在单独的线程上执行长时间运行的操作。这将使您的UI线程保持畅通和响应。看起来一个后台工作人员
会对你的情况有好处。请在此处阅读相关内容AddRanges,然后再设置项目Source是否可以编写最小示例?我进行了测试,它也做了同样的事情。你还在使用Dispatcher吗?为什么不能在绑定之前添加范围而不使用Dispatcher?