2013-11-21 29 views
0

所以我面對這個問題,我有2頁,ViewAccount和MainPage。列表框(不同頁面)上的NullReferenceException

在MainPage中有一個名爲SavedAccountsLst的ListBox。問題是,在ViewAccount頁面中,一旦我點擊一個按鈕,它會拋出一個NullReferenceException

這是我使用的ViewAccount代碼:

Private Sub Delete_Account_Click(ByVal sender As Object, ByVal e As System.EventArgs) 
    Dim Storage As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication() 
    Storage.DeleteFile("SafeLockPLUS/SavedAccounts/" & PageTitle.Text) 
    MessageBox.Show(PageTitle.Text & " has been deleted.", "Deleted", MessageBoxButton.OK) 
    Dim aa = TryCast(DirectCast(Application.Current, App).RootFrame.Content, MainPage) 
    aa.SavedAccountslst.ItemsSource = Nothing 
    Dim directory As String = "./SafeLockPLUS/SavedAccounts/*.*" 
    Dim filenames As String() = Storage.GetFileNames(directory) 
    aa.SavedAccountslst.ItemsSource = filenames 
    NavigationService.GoBack() 

End Sub 

那是什麼意思做的是,它會刪除從viewaccount頁面文件並清除SavedAccountList的項目,並重新加載它們都在ViewAccount頁面,然後返回。

+0

哪一行正是引發異常得空? –

+0

aa.SavedAccountslst.ItemsSource = Nothing –

+0

如果你在ViewAccount中,那麼'App.RootFrame.Content'是'ViewAccount',而不是'MainPage',因此錯誤 –

回答

0

執行此代碼時,您在ViewAccountPage,基本上這意味着RootFrame.Content包含一個ViewAccountPage頁面,而不是MainPage

Dim aa = TryCast(DirectCast(Application.Current, App).RootFrame.Content, MainPage) 

你想投RootFrame.ContentMainPage和你的施法失敗了,所以你在aa可變

+0

我無法訪問ViewAccount因爲我已經在ViewAccount和我添加的唯一原因:Dim aa = TryCast(DirectCast(Application.Current,App).RootFrame.Content,MainPage)是從ViewAccount頁面創建一種類似的引用,我稱之爲aa.SavedAccountslst.ItemsSource = Nothing,告訴從viewaccount頁面清除名爲Savedaccountslst的列表框。 –

+0

它明確表示RootFrame.Content中沒有MainPage? –

+0

你是什麼意思? –

相關問題