从视图模型更改 Xamarin 表单应用程序页面

Posted

技术标签:

【中文标题】从视图模型更改 Xamarin 表单应用程序页面【英文标题】:Changing Xamarin Forms App Page from a View Model 【发布时间】:2019-02-20 11:45:47 【问题描述】:

当前在我的视图模型中,当一个命令被执行时,我正在尝试使用这个来更改应用程序的页面:

Application.Current.MainPage.Navigation.PushAsync(new ArticlePage());

但是,当命令被执行时,它会越过这个并且页面没有被改变。代码是错误的,还是只有一行代码?

谢谢,

瑞恩

【问题讨论】:

您是否调试过此应用以确定goes right past this 是否确实如此? @Saruman 当我使用调试器进入代码时,它访问页面的 .cs 我试图将其推送到,即使它访问 InitializeComponent() 它也不会更改页面。 你试过await Application.Current.MainPage.Navigation.PushAsync(new ArticlePage()); 是的,不走运@Saruman,不幸的是没有任何区别 试试这个 Application.Current.MainPage = new ArticlePage();可能有效。 【参考方案1】:

看看“将页面推送到导航堆栈” - Xamarin documentation

在文档中,以下用于导航。

await Navigation.PushAsync(new Page2Xaml());

当您像现在这样使用整个路径时,引用不正确或引发某种异常。

您还可以使用 try/catch 来查看是否引发了异常。

【讨论】:

以上是关于从视图模型更改 Xamarin 表单应用程序页面的主要内容,如果未能解决你的问题,请参考以下文章

根据布尔值更改 Xamarin 表单标签的文本

如何在具有棱镜的Xamarin表单中为contentview创建单独的视图模型?

在 xamarin 表单上预加载页面

从 Webview 导航到 xamarin 表单中的应用程序页面

Xamarin 表单清除所有条目

如何在 Xamarin 表单的另一个视图中重用缓存的图像