以编程方式向DataGrid添加大量列太慢了

时间:2012-09-14 02:04:27

标签: wpf multithreading datagrid wpfdatagrid datagridcolumn

我有一个WPF DataGrid,必须以编程方式添加行标题和列。我已经成功实现了这个,但性能是不可接受的。每次添加列时,ColumnCollection都会发出CollectionChangedEvent。我还没有找到一种方法来禁用此事件,因此我研究了其他改善性能的方法。

我在后台线程上创建了DataGrid并尝试将网格添加到UI,但没有成功,收到以下消息:

"UI Element is owned by a different thread" 

我在主UI线程上创建了DataGrid,并尝试在后台线程中添加列。同样的问题。我不能要求UI线程这样做,因为这首先是问题。

还有哪些其他方法可以向DataGrid添加大量列? (在一个案例中为10,000列)

Janene

1 个答案:

答案 0 :(得分:0)

我最终使用这行代码在后台创建DataGrid并将其添加到UI。

 this.Dispatcher.BeginInvoke(DispatcherPriority.Background, new UpdateNodesDelegate(UpdateNodes));

从C#2008 WPF食谱一书中获得此解决方案。

Janene