在我的PRISM-App中,用戶可以在TabView中打開模塊的視圖(Navigate("TestView")
)。現在我想通過OnCloseTab("TestView")
關閉此視圖,但註冊視圖沒有名稱。是否有可能通過regionManager.RequestNavigate將其名稱註冊爲View以便將其從區域中刪除?
public class MainWindowViewModel: BindableBase
{
...
private void Navigate(string uri)
{
this.regionManager.RequestNavigate("TabRegion", uri);
}
private void OnCloseTab(string uri)
{
IRegion region = this.regionManager.Regions["TabRegion"];
object view = region.GetView(uri);
if (view != null)
{
region.Remove(view);
}
}
}
模塊註冊在我的引導程序是這樣的:
protected override void ConfigureModuleCatalog()
{
base.ConfigureModuleCatalog();
ModuleCatalog moduleCatalog = (ModuleCatalog)this.ModuleCatalog;
Type modulePType = typeof(Module.ProductionData.ProductionDataModule);
moduleCatalog.AddModule(typeof(Module.ProductionData.ProductionDataModule));
}
它適用於:
IRegion region = regionManager.Regions["TabRegion"];
object view = region.GetView("TestView");
if (view == null)
{
view = ServiceLocator.Current.GetInstance<Views.TestView>();
region.Add(view, "TestView");
}
但MainWindowViewModel不知道有關模塊的意見。有沒有辦法刪除視圖,當它沒有名稱?感謝任何提醒
謝謝爲了你的幫助,盧克。我發佈了我的最終解決方案。 – Max