繁体   English   中英

在WPF DesignData文件中设置本地类的Name属性时出错

[英]Error setting Name property of a local class in WPF DesignData file

我在XAML文件中有这个DesignData文件(编译类型设置为DesignData):

<local:FooModel xmlns:local="clr-namespace:MyProject" 
    Name="Sample" FullPath="C:/www" />

我在MyProject命名空间中有这两个属性的FooModel类。 我在XAML中获取“Name”属性用红色下划线并显示以下消息:

错误1由于“microsoft.expression.markup.semantics.metadata.reflectiontypenode”在同一程序集中实现,因此必须设置x:Name属性,而不是microsoft.expression.markup.semantics.metadata.ReflectionPropertyNode属性。

我认为属性Name与其他东西混淆。 我指的是我的FooModel类的属性,而不是其他任何东西。 我没有收到FullPath警告。

无法重现这一点。 有一个类似的DesignData文件,完全没有问题,包括'Name'属性。 你很没有错字。 验证“自定义工具”和“自定义工具命名空间”为空。 我还怀疑你的'参考'列表中有一个奇怪的汇编。 你从哪里得到MS.Internal.Design ......? (该项目是否起源于Blend?)。 在标准的VS创建项目中,此命名空间不会出现在任何程序集中。 检查哪个程序集实现此命名空间,并尝试将其从引用列表中删除。

我遇到了同样的错误。 重建解决方案后,该错误会消失一段时间,但在Visual Studio(VS Professional,版本11.0.51106.01更新1)中打开相应的DesignData文件后会再次出现该错误。

我尝试删除引用的程序集并清空该DesignData文件的“自定义工具”和“自定义工具命名空间”值。 这些都没有帮助。 在xaml文件中按F12不会带我到任何地方,它对我来说仅适用于.cs文件。

我的解决方案

我通过引用它的完整命名空间中的属性来摆脱这个烦人的错误:classname.propertyname形式在一个专用于它的单独的xml元素中(而不是在父类的xml属性中引用它)。 在你的情况下,这意味着:

<local:FooModel xmlns:local="clr-namespace:MyProject" FullPath="C:/www" >
    <local:FooModel.Name>Sample</local:FooModel.Name>
</local:FooModel>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM