我正在调用列出所有经销商的公共页面。当我从列表中选择项目时,我想根据列表页面的调用位置显示下一页。
简短地从第A页,第B页和第C页调用ListPage。
无法确定我的上一页/我可以使用this.Parent
方法吗?如何?
答案 0 :(得分:0)
使用默认值将参数传递给主ContentPage的类构造函数。将该值分配给类字段并使用它进行检查。 如果有人有更好的解决方案,请告诉我:)
class DistributorListX : ContentPage
{
public string previousPage;
public DistributorListX(string PreviousPage="")
{
InitializeComponent();
previousPage = PreviousPage;
}
void listItemSelected(object sender, SelectedItemChangedEventArgs e)
{
if (previousPage=="A")
Navigation.PushAsync(A1);
else
Navigation.PushAsync(A2);
}
}
答案 1 :(得分:-1)
我是Xamarin的新手,并且遇到类似的问题。帮助我使用Count的Item[Int32]和ModalStack属性的方法,但是NavigationStack的类型也是IReadOnlyList,并且具有相同的属性。所以也许像这样:
var previousPageIndex = Navigation.NavigationStack.Count - 2;
var previousPageType = Navigation.NavigationStack[previousPageIndex];
if (previousPageType.Equals(Xamarin.Forms.NavigationPage)) {
Navigation.pushAsync(Page1);
} else if (previousPageType.Equals(PROJECT.DIR.CustomNavigationPage)) {
Navigation.pushAsync(Page2);
}
注意:如果要从相同类型的2个不同页面进入当前页面,则选中previousPageType
无济于事。在我的实际情况中,我是否在ModalStack中,所以我只需要检查ModalStack.Count > 0
是否确定是弹出页面还是切换选项卡即可。