首页新闻找找看学习计划

ListView绑定ViewModel中的一个ObservableCollection<T>对象,ObservableCollection<T>中的内容,async方式

0
悬赏园豆:5 [已关闭问题] 关闭于 2015-04-13 21:52

ListView绑定ViewModel中的一个ObservableCollection<T>对象,

ObservableCollection<T>中的内容,async方式加载,

加载完毕后,无法显示列表到View,断点进入ViewModel后,可以看到ObservableCollection<T>中是有加载到内容的。

 

请问是怎么回事?

 

如果直接加载一个本地初始化的ObservableCollection<T>对象则没有问题,直接可以显示,之后再对ObservableCollection<T>中的内容增加/删除,都是可以即时显示在View中的。

铁手三郎的主页 铁手三郎 | 菜鸟二级 | 园豆:311
提问于:2015-02-25 21:41
< >
分享
所有回答(2)
0

没有加载的情况,可能是由于在async方法的await 语句之前,没有对ObservableCollection<T>进行初始化,导致了初次绑定时,绑定的为null,之后的数据加载,导致关系中断。

 

在await语句之前,对ObservableCollection<T>进行一次实例化。

 

不是实例化的原因,是之后赋值时改变了原有对象的地址,因此绑定失效

铁手三郎 | 园豆:311 (菜鸟二级) | 2015-02-25 22:09
0

我是不是可以理解为未将对象引用到实例呢?ObservableCollection<T>的值没有被实例化吧?

_Vegetables | 园豆:569 (小虾三级) | 2015-02-26 17:16

我觉得是,绑定后,是对地址指向的对象进行监控,同一地址的对象,内容发生改变,就会自动通知View,如果改变了之前绑定对象的地址,如集合的赋值操作,没有使用add方法,则会改变地址,原有数据原的值没有变化。

支持(0) 反对(0) 铁手三郎 | 园豆:311 (菜鸟二级) | 2015-02-27 17:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册