【发布时间】:2011-09-18 14:30:09
【问题描述】:
在我的代码隐藏文件中查找在 XAML 中声明的命名对象时遇到问题。
我想从我的视图中初始化一个视图模型。但是,我还需要在我的代码隐藏文件中引用 ViewModel(主要用于导航支持、处理事件等,而我无法从我的 ViewModel 轻松完成)
<navigation:Page.DataContext>
<vm:JobsViewModel x:Name="ViewModel" />
</navigation:Page.DataContext>
但是,当我尝试在后面的代码中访问 ViewModel 时出现空引用异常:
Protected Overrides Sub OnNavigatedTo(ByVal e As System.Windows.Navigation.NavigationEventArgs)
MyBase.OnNavigatedTo(e)
ViewModel.Initalize() '<-- Exception here
End Sub
更多研究表明,FindName 调用 InitalizeComponent 中的“ViewModel”返回 null。我尝试阅读 XAML 名称范围等,但据我所知,这应该是一个简单的案例并且可以正常工作,不是吗?
任何关于为什么失败的指针将不胜感激。谢谢!
【问题讨论】:
标签: wpf vb.net silverlight xaml findname