我不是專家,我不認爲這是內置棱鏡內,但是這是絕對有可能:)
爲你的一些技巧...請善待,我沒有使用一個IDE來編寫任意代碼行:)
首先,您可以創建一個視圖(和一個視圖模型)來顯示可用視圖的列表。這些「可用視圖」可以由定義視圖信息的類來表示。
喜歡的東西:
public interface IAvailableView
{
string ViewName { get; }
string ModuleName { get; }
}
其次,要能顯示所有可用的意見,你的模塊需要「當可用」目錄中的加載。它們將在應用程序初始化時被觸發。
在您的模塊中,您現在應該以特定名稱註冊您的視圖,並且您可以將其公開的所有可用視圖註冊到依賴容器中。
public virtual void Initialize()
{
RegisterView<IView, AnyView>("AnyView");
Register<IAvailableView>(new AvailableView("AnyView", "MyModuleName"));
}
一旦加載了所有模塊,視圖模型控件應該能夠解析所有這些IAvailableView。
現在,所有你需要做的是綁定到一個控制那些提供意見,並在RegionManager註冊把對應的視圖一旦在項目的用戶點擊...
var view = GetInstance<IView>(selectedAvailableView.ViewName);
RegionManager.RegisterViewWithRegion("whateverRegion",() => view);
希望它能幫助:)