[英]Prism Xamarin Forms Tabbed Page Navigation
我有一個使用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>
我試圖導航到選擇了服務訂單詳細信息頁面的選項卡式頁面,但是當我根據此博客文章導航時。 它導航至選項卡式頁面之外的單獨服務訂單明細頁面
var p = new NavigationParameters();
p.Add("serviceorder", context);
await _navigationService.NavigateAsync($"{nameof(ServiceOrderTabs)}/{nameof(ServiceOrderDetails)}",p);
您將頁面包裝在Prism不知道的通用NavigationPage中。 您需要創建一個派生的NavigationPage並將其注冊以進行導航。 然后使用它包裝您的COntentPages。 然后,您可以嘗試像“ ServiceOrdersTabs / MyNavigationPage / ServiceOrdersDetails”一樣導航。
但是,即使現在考慮到這一點,可能也行不通,因為您將擁有同一NavigationPage的多個實例,Prism將使用找到的第一個實例並使用該實例。
要變通,您必須為每個選項卡(ServiceOrderSummaryNavPage,ServiceOrdersDetailsNavPage等)創建一個不同的NavigationPage,以確保每個選項卡都是唯一的。
順便說一下,您從哪里導航?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.