我有一个WPF网格和一个值列表。值列表具有行和列属性以及内容值。在格式化的网格中显示200到14,000个值。
我在网格中添加了行和列,然后在正确的行/列位置向网格添加了文本块。
这很有效,直到我有大约8,000个值,然后它变慢。为了补救我把它放到一个线程来执行布局,问题是,我的TextBlocks是在一个线程上创建的,然后当我尝试使用UI调度程序将它们添加到Grid的Children成员时,文本块在另一个线程上
所以问题是,我可以在创建Textblocks之后将它的线程关联性切换到UI线程吗?
由于 欧文
答案 0 :(得分:1)
您是要一次显示所有8000个值还是有一些滚动条?
向视图添加8000个控件将被视为糟糕的设计。
如果值具有相同的模板,为什么不根据您的设计选择ListView并对其进行模板化?这样你就可以将它绑定到一个ObservableCollection,它可以使用你拥有的值列表填充。可以使用Dispatcher's BeginInvoke方法
使填充异步