0

答えが得られることを望んでいませんが、明確にしようとします。

カリバーンマイクロを試してみました。最初は問題ないようで、必要なものはすべて揃っていました。一部の機能はありますが、他の機能はありません。

私が欲しかったのは、ユーザーコントロールとしていくつかのビューを備えた単一のウィンドウと、各ビューに複数のダイアログです。Conductor.OneActiveを使用すると、ほとんど苦労せずに最初の目標を達成できました。ただし、例を見てもビューを切り替えるのは、 Parent を Conductor にキャストし、そこでメソッドを呼び出すことでした。
カリバーン マイクロの例でも、このようにキャスティングしました。画面で .close(false) を呼び出すと、close(true) と同じで、ビューが強制終了されて再作成され、最下位のアトム PC で遅延が発生しました。したがって、唯一の解決策は、親にキャストすることでした。

ダイアログ
私はたくさんのダイアログの例を試しましたが、うまくいきませんでした。メッセージボックスなどは非常に簡単でしたが、複数のダイアログが必要な場合は運が悪かった. コールバックを閉じて別のダイアログを開くコードを配置すると、混乱してスタックオーバーフロー例外が発生します(エンドレスループ)。ビューをキャッシュし、同時に複数のダイアログを効率的に表示できる優れたダイアログを考え出すことができました。

イベント アグリゲータ また、イベント アグリゲータがビューの切り替えにどのように適しているのかわかりません。複数の導体がある場合、管理するのは大変なことです。

4

3 に答える 3

0

Catelをご覧ください。ビューモデルに基づいてウィンドウを表示できる UIVisualizerService があります

また、アプリケーション全体内のすべてのビューを管理できるViewManager (IViewManager)もあります。それに加えて、ビュー モデルに対して同じことを行う ViewModelManager (IViewModelManager) も提供します。何よりも、アプリケーション内の特定のビュー モデルに接続されているすべてのビューを見つけて、それとやり取りすることができます。

于 2013-07-06T16:37:04.557 に答える
0

プリズム ライブラリhttp://compositewpf.codeplex.com/をご覧ください。

ナビゲーションの章を参照してください: http://msdn.microsoft.com/en-us/library/gg430861%28v=pandp.40%29.aspx

しかし、EventAggregator がビューを切り替えるのにどのように役立つかはわかりません… クロージングビューで受信したイベントをサブスクライブすることはできますが…

于 2013-07-02T12:17:05.630 に答える