私のアプリケーションには、左側に Outlook スタイルのメニューがあり、右側にコンテンツが表示されています。Prism のナビゲーション API を使用しています。ユーザーがメニュー項目間を移動すると、特定のメニュー項目で最後に表示されたコンテンツが表示されるため、ユーザーは 2 つの領域を行き来して情報を比較できます。これには、「ページ」ごとに個別の領域を持つメイン表示領域 (つまり、メニュー選択のコンテンツを表示するための UserControl) がネストされている必要があります。
各ページには特定のコントロールのインスタンスが少なくとも 1 つ含まれており、そのコントロールにはハンドラーDependencyProperty
を持つがあります。PropertyChangedCallback
私が気づいたのは、ページがナビゲートされると、コレクションがバインドされているページ上のすべてのコントロールがコントロールのPropertyChangedCallback
ハンドラーをトリガーすることです (これは私が望むものです) が、コレクション以外のバインディングは実行しません。
ページに移動するとNavigatedTo
、メイン (外側) 領域でイベントがトリガーされることがわかります。ページ固有の (内側の) 領域で NavigatedTo イベントをトリガーしたくないので、それで問題ありません。しかし、私が得られないのは、イベントを取得する外側の領域であるときに、内側の領域のコントロールまたはバインディングのいずれかに変更が通知される理由です。
各コレクション バインディングはListCollectionView
overObservableCollection
であり、各コレクション アイテムは を実装しINotifyPropertyChanged
ます。
私の質問は次のとおりです。
- 依存関係プロパティの変更をトリガーする、各コレクションが処理するイベントで、コレクション以外のイベントは処理されませんか?
- 外側の領域に移動すると、内側の領域のコントロールに影響するのはなぜですか? 内部領域が受信する必要があるイベントは何ですか?
- 非コレクションバインディングを実装して同じ効果を得るにはどうすればよいですか?