Ссылка на вложенный тип в конструкторе XAML Visual Studio 2008 - PullRequest
5 голосов
/ 22 июня 2010

При следующем определении ресурса

<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="AccountTypeValues">
    <ObjectDataProvider.MethodParameters>
        <x:Type TypeName="domain:Account+AccountType" />
    </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>

разработчик жалуется, что «Тип« Account + AccountType »не найден».Тем не менее, вложенный тип существует, и код соответствует и выполняется без проблем.Поскольку дизайнер думает, что XAML неверен, он не будет отображать графическое представление XAML.

Что мне нужно сделать, чтобы заставить дизайнера признать Account + AccountType действительным?Мне бы очень хотелось, чтобы визуальная часть дизайнера работала.

Спасибо, Бен

1 Ответ

4 голосов
/ 22 июня 2010

Похоже, это известная ошибка в Visual Studio.От http://social.msdn.microsoft.com/forums/en-US/wpf/thread/12f3e120-e217-4eee-ab49-490b70031806/:

Мы попросили кого-нибудь взглянуть на использование шаблона {x: Type Foo + Bar} и протестировать его в VS2010 и Blend4.Похоже, что он отлично работает в среде исполнения, CompileTime, в Blend 4, но не работает в конструкторе WPF VS2010.

Мы сообщили об ошибке и направили ее в команду дизайнера WPF.

См. Также http://connect.microsoft.com/VisualStudio/feedback/details/361509/xaml-designer-cannot-handle-typename-with-nested-classes.

Вы можете создать статическое свойство, которое вызывает Enum.GetValues(typeof(Account.AccountType)) и связываться с ним вместо использования ObjectDataProvider.Или, если вы управляете типами, вы можете переместить перечисление за пределы класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...