1

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

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

"UI Element is owned by a different thread" 

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

还有哪些其他方法用于向 DataGrid 添加大量列?(在一种情况下为 10,000 列)

珍妮

4

1 回答 1

1

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

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

从C# 2008 中的 WPF 食谱一书中得到了这个解决方案。

珍妮

于 2012-09-17T17:56:59.800 回答