我在MVVM Light中有一个Xamarin.froms应用程序,我想在按钮点击时打开另一个页面,但我只想使用Page class
这个方法page.Navigation.PushModalAsync(new MyPage())
如何发送" Page" class作为ViewModel类的参考。
答案 0 :(得分:2)
有很多方法可以做到这一点。
简单方法:
有用的方式:
编写导航服务。这可以从内容页面扩展,如下所示:
public class NavigationService : ContentPage
{
public static INavigation Navigation
{
get {
return Application.Current.MainPage.Navigation;
}
}
public static IReadOnlyList<Page> NavigationStack () {
return Navigation.NavigationStack;
}
}
现在,您可以在ViewModel中使用此服务,如下所示:
Page lastPage = Navigation.NavigationStack.Last;
答案 1 :(得分:0)
XAML 代码
<Button Text="Help" Command="{Binding NavigateHelpPage}"/>
Xamarin.forms 中的 MVVM 分层页面导航
public ICommand NavigateHelpPage { get; }
private async Task NavigateToHelpPage()
{
await Application.Current.MainPage.Navigation.PushAsync(new HelpPage());
}
内部构造函数:
NavigateHelpPage = new Command(async () => await NavigateToHelpPage());
MainPage 您可以设置为:
Application.Current.MainPage = new NavigationPage(new Views.Dashboard.DashboardPage());