2011-02-01 10 views
0

MEFをベースに、必要に応じてPrismのビットをプルするフレームワークを開発する予定です。PRESM navigation with RegionManager、MEFのみ

プリズムからのターゲットアセットの1つがナビゲーションです。ただしこれはRagionManagerで使用できますか?

リージョンマネージャを使いたくないのですが、ちょっと残虐すぎるようです。私たちはほとんどワークフロータイプのアプリケーションであり、リージョンマネージャーの主な目的である複合UIを必要としません。

答えて

0

ほとんどの場合、ナビゲーションは単なるメニュー項目であり、私は同意します。

メニューアイテムとは、メニューアイテムをシェルに登録して、シェルがルックアンドフィールを含むメニューを作成できるようにすることです。 MEFではこれは本当に簡単です。

MenuItemエンティティで開始します。

public class MenuItem 
{ 
    public ICommand ClickCommand { get; private set; } 
    public string Path { get; private set; } 
    public MenuItem(DelegateCommand command, string path) { //yada yada } 
} 

これらのメニュー項目のインスタンスをエクスポートできます。

[Export(typeof(MenuItem))] 
public MenuItem MyFirstItem = new MenuItem(
    new DelegateCommand(
     () => MessageBox.Show("woo!")), 
     "My First\Menu Item 1") 
    ); 

あなたのシェルでは、これらをインポートして、メニュー項目をレンダリングしようとしている視覚的な要素を作成するだけです。これは、ナビゲーション要素がすべて同じように見えるようにするために、ナビゲーション要素の正しい外観を作成するためにモジュールに依存しないという利点があります。