Ошибка установки свойства Name локального класса в файле WPF DesignData - PullRequest
3 голосов
/ 10 марта 2012

У меня есть этот файл DesignData (тип компиляции установлен на DesignData) в файле XAML:

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

У меня есть FooModel класс внутри MyProject пространства имен с этими двумя свойствами. Я получаю свойство «Имя» в XAML, подчеркнутое красным, и это сообщение:

Ошибка 1, поскольку 'microsoft.expression.markup.semantics.metadata.reflectiontypenode' является реализован в той же сборке, вы должны установить атрибут x: Name а не microsoft.expression.markup.semantics.metadata.ReflectionPropertyNode атрибут.

Я думаю, что свойство Name перепутано с чем-то другим. Я имею в виду Свойство моего класса FooModel, а не что-либо еще. Я не получаю предупреждений за FullPath.

Ответы [ 2 ]

2 голосов
/ 11 марта 2012

Невозможно воспроизвести это.Имейте подобный файл DesignData, без проблем вообще, включая свойство 'Name'.Очень у вас нет опечатки.Убедитесь, что «Пользовательский инструмент» и «Пространство имен пользовательских инструментов» не заполнены.Я также подозреваю, что у вас есть странная сборка в списке «Список литературы».Где вы взяли MS.Internal.Design ...?(был ли проект создан в Blend?).В стандартном проекте, созданном VS, это пространство имен не появляется ни в одной из моих сборок.Проверьте, какая сборка реализует это пространство имен, и попробуйте удалить его из списка ссылок.

0 голосов
/ 14 марта 2013

Я встретил эту же ошибку.Ошибка исчезает на некоторое время после перестроения решения, но появляется снова после открытия соответствующего файла DesignData в Visual Studio (VS Professional, версия 11.0.51106.01, обновление 1).

Я попытался удалить ссылочные сборки и очистил 'Custom Tool'и' Пространство имен пользовательских инструментов 'для этого файла DesignData.Ничего из этого не помогло.Нажатие F12 в файле xaml никуда меня не ведет, оно работает только для файлов .cs для меня.

Мое решение

Я избавился от этой надоедливой ошибки,ссылка на свойство в его полном пространстве имен: форма classname.propertyname в отдельном выделенном для него элементе xml (вместо ссылки на него в атрибуте xml родительского класса).В вашем случае это будет означать:

<local:FooModel xmlns:local="clr-namespace:MyProject" FullPath="C:/www" >
    <local:FooModel.Name>Sample</local:FooModel.Name>
</local:FooModel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...