Wpf 修改可观察集合<;T>;在运行时声明为资源

Wpf 修改可观察集合<;T>;在运行时声明为资源,wpf,observablecollection,Wpf,Observablecollection,我有一堆从数据库中填充的可观察集合。在应用程序生命周期中,这些集合很可能会增长,我需要每隔30秒左右更新一次 我将集合声明为App.xaml中合并词典中的资源。我可以使用Application.FindResource()方法很好地获取这些集合,但是当我再次调用FindResource时,对结果集合所做的任何更改都不会反映出来。也许我天真地认为会是这样 我是对的还是错的?明白了 可以通过Application.Current.resources[key]设置资源值 在我的例子中,如果有人遇到这个

我有一堆从数据库中填充的可观察集合。在应用程序生命周期中,这些集合很可能会增长,我需要每隔30秒左右更新一次

我将集合声明为App.xaml中合并词典中的资源。我可以使用Application.FindResource()方法很好地获取这些集合,但是当我再次调用FindResource时,对结果集合所做的任何更改都不会反映出来。也许我天真地认为会是这样

我是对的还是错的?

明白了

可以通过Application.Current.resources[key]设置资源值

在我的例子中,如果有人遇到这个问题,我会这样做

MyObservableCollection coll1 = Application.FindResource("resourceName") as MyObservableCollection
foreach(Item i in coll1)
{
    if(somecondition){i.someProperty == someValue;}
}
//coll2 does NOT reflect the above change!!!
MyObservableCollection coll2 = Application.FindResource("resourceName") as MyObservableCollection;
Application.Current.Resources["resourceName"] = coll1;
//coll3 DOES reflect the above change
MyObservableCollection coll3 = Application.FindResource("resourceName") as MyObservableCollection

你能分享一下你正在使用的XAML和C代码吗?