C# 如何等待initializecomponent完成
我正在为Win 8 metro构建一个XAML应用程序,但遇到了一个“问题” 我有一个带有按钮的mainpage.xaml,在mainpage.xaml.cs中有一个带有initializecomponent()的构造函数。当我单击按钮时,我调用此函数方法:C# 如何等待initializecomponent完成,c#,xaml,microsoft-metro,C#,Xaml,Microsoft Metro,我正在为Win 8 metro构建一个XAML应用程序,但遇到了一个“问题” 我有一个带有按钮的mainpage.xaml,在mainpage.xaml.cs中有一个带有initializecomponent()的构造函数。当我单击按钮时,我调用此函数方法: private void GoToOtherPage() { this.Frame.Navigate(typeof(MySecondPage)); } 而且效果很好。 但是,在构造函数中,我也有一个条件,如果为true,则继续,
private void GoToOtherPage()
{
this.Frame.Navigate(typeof(MySecondPage));
}
而且效果很好。
但是,在构造函数中,我也有一个条件,如果为true,则继续,如果为false,则我还希望运行GoToOtherPage()。
然后构造函数看起来像这样
Public Mainpage()
{
InitializeComponent();
if(....)
{
//do some stuff
}
else
{
GoToOtherPage();
}
}
由于发生这种情况时initializecomponent()未准备就绪,因此我得到的错误是对象引用未设置为对象的实例。
我(认为)找到的是refferring this.Frame
我应该如何以正确的方式进行此操作?将“WaitForThisFormToBeReady()”之类的内容放在.Navigate之前,还是我在这里完全走错了方向 我认为
这个.Frame
在页面被导航到后变为非空,因此您可以覆盖OnNavigatedTo
来处理它。否则,您可以通过(Frame)窗口.Current.Content
,抓取框架,应用程序
类上的属性或导航服务
实现-取决于应用程序的设计模式化程度。我尝试了覆盖,但没有出现错误,它运行代码,但不会切换页面。我还尝试了this.content=new otherpage();whick可以工作,但其他页面中的Frame.GoBack()崩溃。:)我想你不能在另一个导航呼叫中导航…:)您可能需要使用Dispatcher.RunAsync()
来运行它,以稍微延迟它。