WPF 不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改
程序员文章站
2023-11-02 16:27:46
该问题出现在WPF中的VM类中,ObservableCollection类型,该类型的 CollectionView 不支持从调度程序线程以外的线程对其 SourceCollection 进行的更改,解决办法: ThreadPool.QueueUserWorkItem(delegate { Sync ......
该问题出现在wpf中的vm类中,observablecollection类型,该类型的 collectionview 不支持从调度程序线程以外的线程对其 sourcecollection 进行的更改,解决办法:
threadpool.queueuserworkitem(delegate { synchronizationcontext.setsynchronizationcontext(new dispatchersynchronizationcontext(system.windows.application.current.dispatcher)); synchronizationcontext.current.post(pl => { //里面写真正的业务内容 _framecontents.add(frame); _datagridmain.scrollintoview(_framecontents[_framecontents.count - 1], _datagridmain.columns[0]); }, null); });
其中 _framecontents 就是public observablecollection<framecontent> _framecontents 类型。
by:
上一篇: 程序员必备神器,脑洞不是一般大!