2011-08-08 2 views
5

リソースディクショナリが観測できない場合、DynamicResourceリファレンスはどのように機能しますか? リソースディクショナリの[追加/削除]メソッドに、すべてのDynamicResource参照を「ポーリング」し、削除または追加したときにリフレッシュする内部コードが含まれていますか?ResourceDictionaryを変更すると、DynamicResourceの再評価はどのように行われますか?

答えて

9

各ResourceDictionaryには、3つの所有者リストが含まれています。 1つはFrameworkElement、もう1つはApplication、もう1つはFrameworkContentElementです。 Resourcesプロパティにアクセスすると、所有者が設定されています。また、各ResourceDictionaryは、その所有者を結合された辞書に伝播します。ディクショナリが変更されると、ディクショナリはそれについて所有者に通知します。この通知は、リソース表現を含むローカル値を使用して依存関係プロパティを実際に検索します。そして、それぞれの表現は再評価されなければなりません。

このコードはすべて内部的なものです。

+0

+1「私はそれを知りませんでした! :-) –

関連する問題