次のコードは、NavigationWindowを使用するWPFプロジェクトにあります。コードビハインドにはいくつかのオーバーライドメソッドがあります。以下のオーバーライドでは、 'favoritesItem'にアクセスする必要があります。 'favoritesItem'は別の.XAMLファイルにあります。明らかに私はそれに適切にアクセスしていません。異なるXAMLファイル内のコードの背後にあるXAML要素はどのようにしてアクセスされますか?
Protected Overrides Sub OnClosed(e As EventArgs)
MyBase.OnClosed(e)
' Persist the list of favorites
Dim f As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForAssembly()
Using stream As New IsolatedStorageFileStream("myFile", FileMode.Create, f)
Using writer As New StreamWriter(stream)
For Each item As TreeViewItem In DirectCast(System.Windows.Application.Current.Properties("favoritesItem"), TreeViewItem).Items
writer.WriteLine(TryCast(item.Tag, String))
Next
End Using
End Using
End Sub
このエラーは次のとおりです:
Object reference not set to an instance of an object
異なるファイルに[編集し] XAML要素にアクセスするための適切な方法は何ですかこれはオーバーライドのですか?
[NullReferenceExceptionとは何か、それを修正するにはどうすればいいですか?](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix -it) – Codexer
オブジェクトがNullReferenceExceptionを返していることを理解していますが、プロパティに正しくアクセスしていないためそうではありませんか?プロパティは実際にアクセスされていないため、キャストには何も返されません。プロパティリファレンスを修正すると、TreeViewからデータを受け取ります。私が理解できないことは、そのPropertyにアクセスする方法です。 – Alan