我有一堆ObservableCollections从数据库中填充。很有可能在应用程序生命周期中这些集合会增长,我需要每30秒更新一次。
我将集合声明为App.xaml中合并字典中的资源。我可以通过使用Application.FindResource()方法获取这些集合,但是当我再次调用FindResource时,我不会反映对结果集合所做的任何更改。也许我很天真地认为情况就是这样。
我是对还是错?
答案 0 :(得分:0)
知道了!
可以通过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