由于 Visual Studio 2015 处于 RC 状态,我不确定我是否发现了错误或者我的项目有问题。
我创建了一个带有 MVVM Light 的 Viewmodel Locator 并公开了返回每个 viewmodel 实例的静态属性。定位器在 app.xaml 中注册为静态资源。
通常我会在 Page Xaml 中用这样的一行来绑定它:
DataContext="{Binding Path=MyViewModel, Source={StaticResource ViewModelLocator}}"
然而,虽然我在 VS2015 中尝试之前从未遇到过这个问题,但它不适用于我为 Windows 10 创建的新项目。
当我运行项目时,页面中的 DataContext 为空,即使它在 XAML 中明确分配,就像我在其他几十个项目中所做的那样。我检查并创建并初始化了 ViewModelLocator 静态资源,它的 MyViewModel 属性也包含我想要的 ViewModel。所以在 VM 或定位器中肯定没有空引用,但由于某种原因,将其绑定到页面的 DataContext 的 XAML 声明似乎被忽略了......
我在定位器中为 MyViewModel 的静态属性 getter 设置了一个断点,它从未被调用...
所以我不确定这是否是 VS2015、MVVM Light、Windows 10 SDK 或 Windows 10 本身的问题(当前版本 10162)......
有没有其他人遇到过这个问题?