2012-01-13 51 views
2

因此,我在這個窗口的某個窗口2中嘗試通過創建Mainwindow對象來獲取在MainWindow.xaml 中定義的框架,並嘗試導航到頁面,但程序給出「null reference unhandeled by用戶代碼」從其他窗口獲取MainWindow框架

我用:

public Window2() 
    { 
    } 

myfunction() 
{ 
MainWindow rootwindow = new MainWindow(); 
    rootwindow.myframe.Navigate(new Page1()); 
    } 
+1

你打算在這裏實例化(即創建)一個新的MainWindow嗎?會喜歡'MainWindow rootWindow = Application.MainWindow'而不是? – 2012-01-13 13:00:43

回答

7

這是你如何從另一個窗口框架,你只是創建窗口,並嘗試訪問一些東西,還沒有加載作爲風你剛創建的你還沒有顯示過。

您需要參考您的窗口,如果您事先設置了相應的窗口(例如在App類中),則可以從Application.Current.MainWindow獲得該窗口。或者您可以在第二個窗口的構造函數中傳遞對主窗口的引用。

+0

Window mainWindow = Application.Current.MainWindow; mainWindow沒有框架inits選項 – murmansk 2012-01-16 10:08:19

+0

嘗試使用mainwindow的靜態實例 – murmansk 2012-01-16 11:48:59