我正在爲Win 8 metro構建一個XAML應用程序,並且遇到了一個「問題」。我該如何等待初始化組件被執行
我有我的mainpage.xaml一個按鈕,並在mainpage.xaml.cs我有我的構造函數initializecomponent()。當我點擊按鈕時,我稱之爲功能方法:
private void GoToOtherPage()
{
this.Frame.Navigate(typeof(MySecondPage));
}
並且工作得很好。 然而,在構造函數中,我也有一個條件,如果真的只是繼續,但如果它是假的,我也想運行GoToOtherPage()。 構造然後查找somtehing這樣
Public Mainpage()
{
InitializeComponent();
if(....)
{
//do some stuff
}
else
{
GoToOtherPage();
}
}
由於在InitializeComponent()已準備好發生這種情況時,我得到的錯誤Object reference not set to an instance of an object.
我(覺得)發現被refferring到this.Frame。
我應該如何做到這一點正確的方式?在.Navigate之前加入類似「WaitForThisFormToBeReady()」的內容,或者我只是在完整的錯誤軌道上?
我試過重寫,它給了我沒有錯誤,它運行的代碼,但是不切換頁面。我也嘗試了this.content = new otherpage(); Whick有效,但其他頁面中的Frame.GoBack()會崩潰。 :) – gubbfett
我認爲你不能在另一個導航調用內部瀏覽... :)你可能需要使用Dispatcher.RunAsync()來運行它來稍微延遲它。 –