XAML设计师停止使用设计时数据上下文。

7
在我的项目中,有几个WPF窗口和控件。对于每个窗口或控件,我都创建了一个示例视图模型,以便在XAML设计器中包含像这样的一行,以使用示例数据来模拟窗口或控件的外观:
         d:DataContext="{x:Static views:SampleViewModels.SampleVariableViewModel}"

多年来这种方法一直很好用。然而,今天或昨天可能已经停止在我的计算机上显示样本数据的XAML设计器。无论是当前代码还是旧版本的代码,每个视图都没有从其样本视图模型中的数据。我已经重建了项目,重新启动了Visual Studio,并重新启动了计算机,但没有效果。这个问题只影响到我;我的同事可以正确地看到样本数据。
重要的是,XAML设计器正在显示某些数据,只是不是正确的数据。例如,当一个字段绑定到“名称”时,设计器使用文本“名称”。数字有时被填充为0。我的视图模型有集合的地方,设计器向我显示3个元素。就像是有些东西创建了一个非常粗糙的样本视图模型并使用它,而不是我的精心准备的样本视图模型。
请注意,除了忽略我的样本数据之外,XAML设计器工作正常。并且运行时一切都完美地运行。
有没有Visual Studio的已知“功能”可能会造成这种情况?我是否意外地按下了一些键组合,打开了一些鲜为人知的XAML设计器模式?
我正在使用Visual Studio Community 2015。我已禁用ReSharper,并且我不认为我正在使用任何其他可能会做出这样的事情的扩展程序。有任何想法吗?
更新:我从ShadowCache文件夹中删除了所有内容。但这没有帮助。
更新:我安装了Visual Studio Community 2017。在那个版本中,一切正常,但在Visual Studio Community 2015中仍然无法工作。
2个回答

8

我在使用VS 2017时遇到了完全相同的问题。后来我发现我无意中取消了XAML设计器中的禁用项目代码选项。激活此选项后,我的资源文件中的值再次显示出来了。请参见以下截图:

Microsoft Visual Studio: disable project code


2

之前提供的答案是正确的,但还有另一个正确的答案:如果您正在编译X64或ARM(而不是AnyCPU或x86),则“禁用项目代码”始终有效,无法关闭。即使在Visual Studio 2019中,似乎也不支持在设计器中运行ARM或X64代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接