注册 登录
编程论坛 WPF/Silverlight

有没有办法将异步方法里创建的对象作为数据源关联到控件上...请指教,谢谢

guming 发布于 2013-12-04 13:49, 5738 次点击
有没有办法将异步方法里创建的对象作为数据源关联到控件上...请指教,谢谢
我将一个异步生成的对象赋给了控件,提示以下异常:
“必须在与 DependencyObject 相同的线程上创建 DependencySourc”
异步调用的方法:
根据异常的提示 创建数据源与创建控件不是同一个线程,所以无法作为其数据源,请问有什么方法使得异步里创建的对象能够作为控件的数据源进行绑定..

//此为异步执行所调用的方法
 private void BindBookDetail(object[] bookIds)
 {
 //所创建的对象
 book = DBOperations.BindBookDetail(bookIds[0].ToString());
 if (book != null)
 {
 this.Dispatcher.BeginInvoke(
 new BindDataContextDelegate(BindDataContext),
 new object[] { book });
 }
 
 }


 private void BindDataContext(BookDetail bk)
 {
 try
 {
 this.ucSp.DataContext = bk; //关联到控件的DataContext上,此处出现如题所述异常...
 }
 catch (Exception e)
 {
 Console.WriteLine("******************"+e.Message+"***************************");
 }
 }
0 回复
1