2012-09-16 71 views
0

我有幾個獨立的庫,有一些導出主視圖。 有一個帶有TabControl的Shell,並希望將所有視圖加載到單獨的選項卡中。 我可以從這個插件註冊所有類型,但不知道如何顯示所有這些主視圖。 例如,我已經從5個插件註冊了5個視圖,但是如何將它傳遞給ShellView?如何從插件顯示視圖,通過Autofac動態加載?

回答

2

如果你有一個接口

public interface ITabView { 
} 

所有意見落實

public class MyFirstView : UserControl, ITabView 
{ 
    .... 
} 

,你通過像

builder.RegisterType<MyFirstView>().As<ITabView>(); 
builder.RegisterType<MySecondView>().As<ITabView>(); 

註冊它們,那麼你可以訪問它們的所有(即使他們通過在ShellVi的構造函數中注入一個通用的IEnumerable來註冊到不同的程序集中) ew like

public ShellView(IEnumerable<ITabView> tabViews) 
{ 
    foreach (var view in tabViews) 
    { 
    ... Create a tab for each view, make the tab the parent of the view 
    ... and add the tab to the TabControl 
    } 
} 
相關問題