2013-11-21 28 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

你是什么意思? –

相关问题