私はstackoverflowを初めて使用し、WPFを比較的使用していません。
パターンとベストプラクティスの5ダースの重い本(およびここに多数の投稿)に頭を包みましたが、探している解決策が見つからないようです。
私の問題:WPF / .Net 4 / C#一度に1つのドキュメント(タイプDocument D )をロードできる(タイプEditor Eの)テキストプロセッサがあります(Editor.CurrentDocumentとしてstroed)。いくつかのUIコントロールは、Document.Title、Document.DateLastModificationなどのドキュメントのプロパティ(すべての依存関係プロパティ)にバインドします。
ここで、すべてのイベントハンドラーをフック解除して再度フックすることなく、実際のDocumentインスタンスを切り替えられるようにしたいと思います。したがって、Editor.CurrentDocumentプロパティは、実装を切り替える間、何らかの形でそのインスタンスのままである必要があると思います。
Documentから直接継承し、シングルトンパターンを使用するSingleInstanceDocumentクラスを作成しようとしました。しかし、すべてのプロパティを内部的に再マップする必要なしに、DocumentインスタンスをSingleInstanceDocumentに挿入する方法を見つけることができません。
私はどういうわけか間違った方向に進んでいるのでしょうか、それともここでのポイントを見逃しているのでしょうか?SingleInstanceDocumentアプローチが実行可能なソリューションである場合、リフレクションを使用して、使用可能なすべての依存関係プロパティを内部ドキュメントから外部SingleInstanceDocumentシェルに自動的に再マップする方法はありますか?
どうもありがとうございます!
補遺:
ここで必要な機能は、CurrentDocumentホストオブジェクトにINotifyPropertyChangedを実装することにより、すぐに使用できるWPF/.NETによって既に提供されていることがわかりました。したがって、現在のドキュメントを変更すると、UIはバインドされたコントロールを適切に更新します。ご迷惑をおかけして申し訳ございません。