我正在使用新的Xamarin Appshell。
在我的AppShell.xaml文件中,我有一段这样的代码:
<TabBar>
<Tab Title="Menu" Icon="tab_feed.png">
<ShellContent ContentTemplate="{DataTemplate local:MainMenuPage}" />
</Tab>
<Tab Title="Map" Icon="tab_feed.png">
<ShellContent ContentTemplate="{DataTemplate local:MapPage}" />
</Tab>
<Tab Title="S.O.S" Icon="tab_feed.png">
<ShellContent ContentTemplate="{DataTemplate local:SOSPage}" />
</Tab>
<Tab Title="About" Icon="tab_about.png">
<ShellContent ContentTemplate="{DataTemplate local:AboutPage}" />
</Tab>
</TabBar>
菜单页面立即显示...这就是我想要的。但是创建菜单页面后,我需要立即创建MapPage视图的实例。 (此MapPAge尚未显示给用户。)因此,当任何人触摸该Map选项卡时,将显示MapPage视图的初始实例。我从不希望创建MapView的新实例。
我该怎么做?
答案 0 :(得分:1)
如果要创建选项卡的实例,请删除DataTemplate选择器。
<ShellContent>
<views:YourMapsPage />
</ShellContent>
在Shell应用程序中,ShellContent中的每个ContentPage对象 对象是在应用程序启动期间创建的
但是,Shell还允许根据需要创建页面,以响应 导航。这可以通过使用DataTemplate来完成 标记扩展将每个ContentPage转换为一个DataTemplate,以及 然后将结果设置为ShellContent.ContentTemplate属性 值: