【发布时间】:2016-04-27 21:08:10
【问题描述】:
我尝试了不同的方法来更改我的 MainPage,但它没有发生。基本上,当我的应用程序启动时,它需要执行一些异步任务来初始化所有内容,然后才能显示真正的主页。我首先在 App.cs 中尝试了一个事件处理程序。我可以确认事件处理程序确实在我的调试器中触发。但是,切换主页的代码没有成功。我的用户界面没有任何变化。这段代码如下:
private void UnitStatusModelChanged(object sender, EventArgs e)
{
UnitStatusModel = _unitStatusMonitor.UnitStatusModel;
UnitStatusViewModel = new UnitStatusViewModel(UnitStatusModel, InputResourceHandler);
MainPage = new MainTabbed(UnitStatusViewModel, InputResourceHandler);
Debug.WriteLine("Switched page to " + UnitStatusModel.Version.Name);
}
protected override void OnStart()
{
_unitStatusMonitor.UnitStatusChanged += new UnitStatusModelChangedEventHandler(UnitStatusModelChanged);
_commandQueue.StartQueue();
}
我想也许以这种方式设置 MainPage 不是可行的方法。因此,我尝试将 MainPage 设为空白 NavigationPage,然后在应用程序准备好后将模型页面推送到顶部。这也没有效果。
var newPage = new MainTabbed(
new UnitStatusViewModel(_unitStatusModel, inputResourceHandler),
inputResourceHandler
);
App.Current.MainPage.Navigation.PushModalAsync(newPage);
我可以确认,如果我使用 MainTabbed 页面启动应用程序,该页面会显示,因此 MainTabbed 应该没有问题。同样,我还在调试器中验证了这些代码行正在执行,没有抛出异常。不过,MainPage 没有任何变化。什么给了?
【问题讨论】:
-
请在Application类中分享您的完整代码
标签: c# xamarin xamarin.forms