![](/img/trans.png)
[英]Xamarin.Forms and Prism - How to pass data and navigate to another view?
[英]PRISM navigate to another View
我有一個MainWindow,其中僅包含用於顯示其他視圖的區域:
<ContentControl Grid.Row="1" prism:RegionManager.RegionName="ContentRegion"/>
我想做的是立即加載MainWindowViewModel
,導航到MainPageViewModel
。
我試圖實現接口INavigationAware
,如下所示:
public void OnNavigatedTo(NavigationContext navigationContext)
{
_regionManager.RequestNavigate("ContentRegion", App.Experiences.DetailPage.ToString());
}
public bool IsNavigationTarget(NavigationContext navigationContext)
{
return true;
}
public void OnNavigatedFrom(NavigationContext navigationContext)
{
_regionManager.RequestNavigate("ContentRegion", App.Experiences.DetailPage.ToString());
}
但是即使我在這些斷點上設置斷點,它們也永遠不會執行。
我究竟做錯了什么?
編輯
也許我需要更改Bootstrapper邏輯? 看起來是這樣的:
public class Bootstrapper: UnityBootstrapper
{
protected override System.Windows.DependencyObject CreateShell()
{
return Container.TryResolve<MainWindow>();
}
protected override void InitializeShell()
{
Application.Current.MainWindow.Show();
}
protected override void ConfigureContainer()
{
base.ConfigureContainer();
Container.RegisterType(typeof(IDataRepository), typeof(DataRepository), null,new Microsoft.Practices.Unity.ContainerControlledLifetimeManager());
Container.RegisterTypeForNavigation<MainPage>(App.Experiences.MainPage.ToString());
Container.RegisterTypeForNavigation<DetailPage>(App.Experiences.DetailPage.ToString());
}
}
我必須編輯Bootstrapper邏輯,如下所示:
protected override void InitializeShell()
{
Application.Current.MainWindow.Show();
Prism.Regions.IRegionManager newRegion = Container.TryResolve<Prism.Regions.IRegionManager>();
newRegion.RequestNavigate("ContentRegion", App.Experiences.MainPage.ToString());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.