在我的代码隐藏文件中查找在 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
对“ViewModel”的调用InitalizeComponent
返回 null。我尝试阅读 XAML 名称范围等,但据我所知,这应该是一个简单的案例并且可以正常工作,不是吗?
任何关于为什么失败的指针将不胜感激。谢谢!