XAML设计器已停止使用设计时数据上下文

时间:2017-04-26 21:31:31

标签: visual-studio-2015 xaml-designer

在我的项目中,我有几个WPF窗口和控件。对于每一个,我都创建了一个示例视图模型,因此我可以通过包含如下所示的行来查看XAML设计器中的示例数据模拟窗口或控件:

         d:DataContext="{x:Static views:SampleViewModels.SampleVariableViewModel}"

多年来一直很有效。但是,今天或者可能是昨天,XAML设计师停止在我的计算机上显示样本数据。在当前和旧版本的代码中,每个视图都显示没有来自其示例视图模型的数据。我重建了项目,重新启动了Visual Studio,并重新启动了计算机,但没有效果。这个问题只影响我;我的同事们正确地看到了样本数据。

重要的是,XAML设计师正在显示一些数据,而不是正确的数据。例如,当字段绑定到" Name"时,设计者正在使用文本" Name"。数字(有时?)用0填充。在我的视图模型有一个集合的地方,设计师向我展示了3个元素。就好像某些东西正在创建一个非常粗糙的样本视图模型并使用它而不是我精心准备的样本视图模型。

请注意,除了忽略我的示例数据之外,XAML设计器工作正常。一切都在运行时完美运行。

是否有任何已知的"功能" Visual Studio可以这样做吗?可能我不小心碰到了一些关键组合,开启了一些鲜为人知的XAML设计师模式?

我正在使用Visual Studio Community 2015.我已经禁用了Resharper,而且我不认为我使用任何其他可以执行此类操作的扩展程序。有什么想法吗?

更新:我从ShadowCache文件夹中删除了所有内容。那没有用。

更新:我安装了2017年的Visual Studio社区。一切都在该版本中正常运行,但仍然无法在Visual Studio社区2015中运行。

2 个答案:

答案 0 :(得分:5)

我和VS 2017有完全相同的问题。我发现我不小心取消了XAML设计器中的禁用项目代码选项。激活此选项后,我的资源文件中的值再次显示。见这个截图:

Microsoft Visual Studio: disable project code

答案 1 :(得分:1)

先前提供的答案是正确的,但是还有另一个正确的答案:如果您正在为X64或ARM(例如,与AnyCPU或x86相对)进行编译,则“禁用项目代码”始终有效,并且您可以将其关闭。看起来,甚至Visual Studio 2019也不支持在设计器中运行ARM或X64代码。