1

画面の上部に共通のツールバーが必要な WPF アプリケーションを開発しています (「ツールバー」と言うと、WPF ToolBar コントロールではなく、Windows 8 アプリに似た一連の画像ボタンになる可能性が高くなります)バー)。Prismナビゲーションを使用しています。

私が念頭に置いていたのは、このツールバーがメイン ウィンドウに存在し、アプリケーション全体で常に表示されるということでした。ツールバーには、「終了」や「ヘルプ」などのいくつかの標準ボタンが含まれます。

ツールバーの下のメイン ウィンドウには、基本的に大きな Prism 領域が含まれています。この領域をビュー (「view1」と呼びます) にナビゲートすると、view1 でツールバーにボタンを追加する必要があります。

現在、「view1」には独自の Prism 領域があり、これらの 1 つがビュー (「view2」と呼びます) に移動すると、view2 は「標準」のメイン ウィンドウ ボタンと一緒に独自のボタンを追加できるはずです。およびview1によって追加されたボタン。

ビューから移動するときに、関連するボタンを削除する必要があることは言うまでもありません。

独自のソリューションを展開できると確信していますが、Prism で物事を単純化できるかどうか疑問に思いましたか? 「標準」ボタンの横にあるツールバーに Prism 領域を配置することを考えました。「view1」は、この領域を基本的にview1のボタンだけを含むビューにナビゲートします。この「view1 ボタン ビュー」自体に領域を含めることができ、その view2 は独自の「ボタン ビュー」にナビゲートできます。これは実行可能ですか、それとも複雑になりすぎますか?

4

1 に答える 1

0

あなたはそれを少し複雑にしているように聞こえるか、少なくともあなたは最後に私を失いました.しかし、今日はそれほど時間はかかりません!

提案:あなたの「ツールバー」は、例えば、ItemsControlあなたItemsSourceがいくつかのクラスのコレクションであるいくつかの場所である可能性がありますToolBarOperation。このクラスには、ユーザーに表示する説明と、クリック時に実行する ICommand を含めることができます。のアイテムをボタンとしてスタイルし、ItemsControl各ボタンのコマンドをクラスの ICommand にバインドします。このコレクションは、現在表示されているビューのビューモデルによって生成されます (つまり、View1のビューモデルは、実行する責任があるコマンドを既に認識しています。View1が読み込まれると、コレクションにViewModel1の のリストが入力されToolBarOperationます)。

したがって、あなたの質問に答えるために、Prism 固有のものは必要ないと思います (おそらく の実装を除いてDelegateCommand)...ドキュメントで説明されている「コントローラーパターン」が役立つ場合があります。しかし、Prism を併用して目的を達成することは難しくありません。

于 2013-04-12T15:19:17.500 に答える