小弟才接触WPF,求教一个问题,自己创建一条线程,在线程中用回调的方法来更新ListView,但是总提示该类型的CollectionView 不支持从调度程序

xiao14116 2017-04-03 02:00:41
具体代码如下:
public delegate void ShowTextBack(string sID, string sName); //定义回调函数


private void ShowTextCallBack(string sID, string sName)
{
userinfolist.Add(new UserInfo(sID, sName)); //这个是和ListView绑定的数据
}

然后调用
ShowTextBack pback = new ShowTextBack(ShowTextCallBack);
EmployList.Dispatcher.Invoke(pback, "","" ); //EmployList 是ListView的NAME
来进行托管,但是只要在自己创建的线程里调用回调函数如下:
线程函数

pback("11","张三");

程序就会提示
该类型的 CollectionView 不支持从调度程序线程以外的线程对其 SourceCollection ,百度了好久也没发现怎么解决,只能来请教各位朋友了,希望能有朋友指点下我这个小菜鸟
...全文
2326 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
njit_77 2017-04-12
  • 打赏
  • 举报
回复
this.Dispatcher.Invoke((Action)(() => { //你要做的事情 }));
Mooyi_水 2017-04-07
  • 打赏
  • 举报
回复
线程不安全报的错,从其它地方调用这个线程里面的东西需要用App.Current.Dispatch.BeginInvoke(new Action(()=》{ 。。。处理你的事情 }));也可以用Invoke,具体区别你可以自行百度
  • 打赏
  • 举报
回复
自己创建的线程 -》是thread?如果是的话,需要用Dispatcher执行 pback 方法,不了解Dispatcher,可以去百度查询。

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧