我有一些UI绑定到类型为T的ObservableCollection,其中'T'实现了正确的INotifyProperty更改。
问题是我需要在运行时完全换掉ObservableCollection,因为它是从SQL调用中弹出的。这显然会混淆整个绑定,并且没有更改通知。
如何在运行时替换源对象而不会丢失绑定?
代码大致是这样的
ObservableCollection<Issue> iss = Application.Current.FindResource("Issues") as ObservableCollection<Issue>;
iss = new ObservableCollection<Issue>();
PopulateCollection(iss);
答案 0 :(得分:4)
只要公开集合的属性支持更改通知(因为它是依赖属性,或者因为它实现了INotifyPropertyChanged
),您就可以更改该属性。绑定到它的任何东西都会自动刷新到新的集合。