1

データベースから取り込まれた一連の ObservableCollections があります。アプリケーションの有効期間中にこれらのコレクションが大きくなる可能性が高く、30 秒ごとに更新する必要があります。

App.xaml のマージされた辞書で、コレクションをリソースとして宣言します。Application.FindResource() メソッドを使用してこれらのコレクションを正常に取得できますが、結果のコレクションに加えた変更は、FindResource を再度呼び出しても反映されません。たぶん、これが当てはまると思うのは素朴です。

私は正しいですか、それとも間違っていますか?

4

1 に答える 1

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
于 2009-02-25T15:46:49.600 に答える