首页 文章

棱镜Xamarin表格选项卡页面导航

提问于
浏览
2

我有一个使用Prism和Unity的Xarmarin Forms应用程序,导航到标签页时遇到问题 .

我使用以下版本:Prism.Forms v6.1.0-pre5 Prism.Unity.Forms v6.2.0-pre5 Xamarin.Forms v2.3.0.38-pre2

我的标签页看起来像这样

<?xml version="1.0" encoding="utf-8" ?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
         prism:ViewModelLocator.AutowireViewModel="True"
         xmlns:local="clr-namespace:ServiceOrdersMobileApps.Views;assembly=ServiceOrdersMobileApps"
         x:Class="ServiceOrdersMobileApps.Views.ServiceOrderTabs">
 <NavigationPage Title="Summary">
  <x:Arguments>
    <local:ServiceOrderSummary />
  </x:Arguments>
 </NavigationPage>
 <NavigationPage Title="Complete">
  <x:Arguments>
    <local:ServiceOrderDetails />
    </x:Arguments>
  </NavigationPage>
</TabbedPage>

我正在尝试导航到选项卡页面,并选择了服务订单明细页面,但是当我根据此blog post导航时 . 它通过选项卡页面导航到单独的服务订单明细页面

var p = new NavigationParameters();
 p.Add("serviceorder", context);
 await _navigationService.NavigateAsync($"{nameof(ServiceOrderTabs)}/{nameof(ServiceOrderDetails)}",p);

1 回答

  • 3

    您将页面包装在Prism不知道的通用NavigationPage中 . 您需要创建派生的NavigationPage并将其注册以进行导航 . 然后用它来包装你的COntentPages . 然后你可以尝试像“ServiceOrdersTabs / MyNavigationPage / ServiceOrdersDetails”那样导航 .

    但即使这样我现在考虑也可能不起作用,因为你将拥有相同NavigationPage的多个实例,而Prism将使用它找到的第一个并使用它 .

    对于解决方法,您必须为每个选项卡(ServiceOrderSummaryNavPage,ServiceOrdersDetailsNavPage等)创建不同的NavigationPage,以确保每个选项卡都是唯一的 .

    顺便问一下,你从哪里航行?

相关问题