ListView绑定ViewModel中的一个ObservableCollection<T>对象,
ObservableCollection<T>中的内容,async方式加载,
加载完毕后,无法显示列表到View,断点进入ViewModel后,可以看到ObservableCollection<T>中是有加载到内容的。
请问是怎么回事?
如果直接加载一个本地初始化的ObservableCollection<T>对象则没有问题,直接可以显示,之后再对ObservableCollection<T>中的内容增加/删除,都是可以即时显示在View中的。
没有加载的情况,可能是由于在async方法的await 语句之前,没有对ObservableCollection<T>进行初始化,导致了初次绑定时,绑定的为null,之后的数据加载,导致关系中断。
在await语句之前,对ObservableCollection<T>进行一次实例化。
不是实例化的原因,是之后赋值时改变了原有对象的地址,因此绑定失效
我是不是可以理解为未将对象引用到实例呢?ObservableCollection<T>的值没有被实例化吧?
我觉得是,绑定后,是对地址指向的对象进行监控,同一地址的对象,内容发生改变,就会自动通知View,如果改变了之前绑定对象的地址,如集合的赋值操作,没有使用add方法,则会改变地址,原有数据原的值没有变化。