[英]Xamarin.Forms variable navigation
我目前正在使用Xamarin.Forms為Android開發一個股票控制應用程序。 我還有一個額外的頁面,用於輸入產品ID。 我想在兩個方案中使用該頁面:
選擇產品后,您將被重定向到:
問題是,下一頁取決於之前單擊的按鈕 。 在我的ViewModel中,我有以下代碼可以導航(針對場景1):
public async Task GoToNextPage(Product product)
{
await Navigation.PushAsync(new DetailStockmovementPage(product), true);
}
如何使下一頁變量? 我可以在ViewModel中定義變量“ NextPage”,從“ vm.NextPage = DetailStockmovementPage”這樣的視圖中進行設置,然后像
public async Task GoToNextPage(Product product)
{
await Navigation.PushAsync(new NextPage(product), true);
}
我知道這行不通,但我認為糟糕的嘗試明確了我想要實現的目標。 我的意思是我可以為每個頁面推送一個字符串,並在導航之前進行一次if查詢,但是我認為這不是一個好方法。 如何更改要瀏覽的頁面?
您可以將用戶的選擇從第一頁傳遞到他們選擇產品的頁面,然后使用該信息來確定要導航到的頁面。 例如:
在您的App.cs文件中添加一個枚舉:
public enum NavTarget
{
Order,
Stockmovement
}
在VM中為在菜單頁面中選擇的目標定義屬性:
public NavTarget Target { get; set; }
...並在導航方法中使用它:
public async Task GoToNextPage(Product product)
{
if (Target == NavTarget.Stockmovement)
await Navigation.PushAsync(new DetailStockmovementPage(product), true);
else
await Navigation.PushAsync(new WhateverItsCalledPage(product), true);
}
然后在構造函數中為您的ProductSelectionPage設置該屬性:
public ProductSelectionPage(NavTarget target)
{
InitializeComponent();
// some code that sets the VM for this page
// ...
vm.Target = target;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.