如何将参数传递到AppShell TabBar页面



我正在使用Xamarin Forms开发一个多平台应用程序,我需要将一个参数和用户信息从我的LoginPage传递到我的HarvestPage(顺便说一句,这是一个农民应用程序(。我使用的是MVVM体系结构,但没有MVVM框架。

因此,用户在LoginPage中执行身份验证,然后应用程序导航到我的AppShell,在那里我有4个底部选项卡。

LoginPage.xaml.cs中,我导航到ShellPage的第一个选项卡(此页面不需要参数(:

private async void OnLoginClicked(LoginViewModel sender, Usuario args)
{
Application.Current.MainPage = new AppShell(args);
await Shell.Current.GoToAsync("//market");
}

然后在我的AppShell.xaml页面中,我声明我的选项卡的内容:

<TabBar>
<ShellContent Title="Market" Icon="exchange.png" ContentTemplate="{DataTemplate local:MarketPage}" Route="market" />
<ShellContent Title="Harvest" Icon="sugarcane.png" ContentTemplate="{DataTemplate local:HarvestPage}" Route="harvest" />
...
</TabBar>

AppShell.xaml.cs中,我配置了路由:

private Usuario _user;
public AppShell(Usuario user)
{
InitializeComponent();
_user = user;
Routing.RegisterRoute(nameof(HarvestPage), typeof(HarvestPage));
Routing.RegisterRoute(nameof(MarketPage), typeof(MarketPage));
...
}

用户信息被发送到AppShell.xaml.cs,但我如何将用户参数传递到我的HarvestPage

我不能像其他问题中建议的那样使用GoToAsync,因为没有导航按钮,从MarketPage到HarvestPage的导航是通过底部选项卡进行的。

您可以定义为public:

public Usuario User;

然后使用从HarvestPage访问

(Shell.Current as AppShell).User

相关内容

  • 没有找到相关文章

最新更新