2011-02-01 71 views
0

我們正在計劃開發一個使用MEF作爲基礎的框架,根據需要提取棱鏡。沒有RegionManager的PRISM導航,只有MEF

棱鏡的目標資產之一是導航。可以,但可以與RagionManager一起使用嗎?

我們不想使用RegionManager,因爲它看起來有點矯枉過正。我們大多是一個工作流程類型的應用程序,並不需要複雜的UI組成,這是區域管理員的主要目的

回答

0

大部分時間,導航只是菜單項,我同意,這有點矯枉過正。

我們對菜單項所做的是使用Shell註冊菜單項,這樣Shell就可以創建菜單,包括外觀和感覺。有了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") 
    ); 

而在你的shell中,你只需要導入這些元素並創建任何可視元素,你試圖呈現菜單項。這還有一個好處,就是不依靠模塊來創建正確的導航元素,當你希望它們看起來都一樣。