2009-02-27 93 views
0

我有一些UI绑定到T类型的ObservableCollection,其中'T'实现INotifyProperty正确更改。WPF数据绑定,替换源对象

问题是我需要在运行时完全交换出ObservableCollection,因为它是从SQL调用中弹出的。这显然混淆了整个绑定,并没有改变通知的消息。

如何在运行时替换源对象而不会丢失绑定?

代码大致是这样的

ObservableCollection<Issue> iss = Application.Current.FindResource("Issues") as ObservableCollection<Issue>; 
iss = new ObservableCollection<Issue>(); 
PopulateCollection(iss); 

回答

4

只要财产暴露在收集支持变更通知(可能是因为它是一个依赖属性,或者是因为它实现了INotifyPropertyChanged),你可以改变该属性。任何绑定到它的东西都会自动刷新到新的集合。