WPF ICollectionView 刷新

标签 wpf multithreading collections refresh

有什么办法吗

ICollectionView.Refresh() 

或者
CollectionViewSource.GetDefaultView(args.NewValue).Refresh();

单独的线程 ?

我知道我可以使用调度程序,但是这个集合绑定(bind)到一个 ListView 并且它抛出了跨线程异常。

我需要第二个线程的原因是,我有显示 IMyItems 列表的 Control。过滤此集合时(通过用户文本更改输入),我希望能够显示 CollectionView 正在更改的动画。

最佳答案

你不能!

所有 UI 操作都必须发生在用户界面线程上,并且几乎 WPF 的 DispatcherObject(以及该层次结构中的所有控件)内部的每个调用都会定期调用 CheckAccess()。

如果您在后台线程或 BackgroundWorker 中进行处理,您可能需要考虑使用 ObservableCollection 来帮助保持数据最新。

关于WPF ICollectionView 刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1232610/

相关文章:

c# - LiveChart 中的 ObservableValue 是什么

c# - 为MvvmCross插件实现缺少的平台

java - 单个应用程序的两个不同数据库框架可以共享相同的连接对象吗?

Java(Android),线程安全的FIFO,无需锁定?

java - 我如何满足在 java/jsp 中转换集合的警告

c# - WPF:使用数据触发器/ bool 值重新启动 Storyboard?

c# - 将 System.Drawing.Icon 转换为 System.Windows.Controls.Image

multithreading - 使用线程和 Perl TK 隐藏段错误 Perl 5.8.8

java - 为什么我们在 TreeMap 中转换为 Comparable

java - 使用 foreach 迭代 Collections 对象