C# VS 2017中WPF设计器中的DesignInstance错误:显示的属性名称不是值

C# VS 2017中WPF设计器中的DesignInstance错误:显示的属性名称不是值,c#,.net,wpf,data-binding,C#,.net,Wpf,Data Binding,我有一个大型且长期运行的WPF解决方案,目前正在VS2017中运行。当我从VS 2015迁移时,我看到一个不寻常的设计器错误,它没有显示绑定到VM的设计时值,而是显示可为null的属性的属性名称(例如,双精度属性的“SomeViewModel.adoublenable”)以及设计时值的数据类型的默认值,而不是在对象上设置的值 如果我切换回VS 2015,我看不出问题所在。有趣的是:如果我用相同的设置(4.6.1和所有的默认设置),用相同的虚拟数据模型和相同的窗口,在相同的解决方案中从头开始创建一

我有一个大型且长期运行的WPF解决方案,目前正在VS2017中运行。当我从VS 2015迁移时,我看到一个不寻常的设计器错误,它没有显示绑定到VM的设计时值,而是显示可为null的属性的属性名称(例如,双精度属性的“SomeViewModel.adoublenable”)以及设计时值的数据类型的默认值,而不是在对象上设置的值

如果我切换回VS 2015,我看不出问题所在。有趣的是:如果我用相同的设置(4.6.1和所有的默认设置),用相同的虚拟数据模型和相同的窗口,在相同的解决方案中从头开始创建一个新的WPF项目,我看不出有什么问题!当然,它可以在运行时正常工作

这是我的虚拟机:

public class DataModel
{
    public double NormalDouble { get; set; } = 1;
    public double? NullableDouble { get; set; } = 2;
    public Child Child { get; set; } = new Child();
}

public class Child
{
    public double NormalDouble { get; set; } = 1;
    public double? NullableDouble { get; set; } = 2;
}
以下是视图:

<StackPanel d:DataContext="{d:DesignInstance local:DataModel, IsDesignTimeCreatable=True}">
    <StackPanel>
        <TextBox Text="{Binding NormalDouble}"/>
        <TextBox Text="{Binding NullableDouble}"/>
        <TextBox Text="{Binding Child.NormalDouble}"/>
        <TextBox Text="{Binding Child.NullableDouble}"/>
    </StackPanel>
</StackPanel>

我希望看到“1,2,1,2”,在一个新的WPF项目中就是这样。但在我以前的项目中,我看到了“0,nullabledoull,0,ChildDataModel.nullabledoull”


有人看到过类似的情况,或者对如何排除故障有什么建议吗?我已尝试删除IsDesignTimeCreatable属性、不同的计算机,并删除“.vs”文件夹。从第一次VS 2017 RC到最近的15.2版(26430.4),我都看到过这个问题。

我无法回答您的实际问题。我希望您能够确切地了解升级到VS2017的旧项目与新的VS2017项目之间的区别,您必须仔细检查.csproj、.xaml和生成的.cs文件,以查看更改的内容。但是,你可能想看看这些想法:,和。在语法上有一些细微的差别;理论上,我希望所有变体都能工作,但请注意,在某些示例中,它们使用
d:DesignData
而不是
d:DesignInstance
,或者显式指定类型属性名称(即
type
d:type
)。也许对语法稍加修改就会改变行为。你。。。你刚才说你已经有解决方案了?创建一个新项目并迁移所有代码?好吧,那就做吧。打开连接错误报告。彼得,谢谢。这对我的问题没有帮助,但我以前没有看到“d:DesignProperties.DataContext”语法。另外,我可以使用DesignData,但是我的一些属性以这种方式暴露是很痛苦的(比如图表的点和这样的想法)。我说过,当我在VS2017中创建一个新项目时,我在上面的简单视图/视图模型中没有看到问题。如果我真的从头开始重新创建实际的复杂项目并迁移所有现有的视图/视图模型,那么即使在添加我提到的简单V/VM时,我也会遇到同样的问题。在VS 2015中处理同一项目时没有问题。因此,即使添加了非常简单的视图/视图模型,我的项目中的某些内容也会导致XAML设计器中出现错误。