Я не могу ссылаться на публичный вложенный тип перечисления из XAML. У меня есть класс
namespace MyNamespace
{
public class MyClass
{
public enum MyEnum
{
A,
B,
}
}
}
И я пытаюсь ссылаться на MyEnum
в Xaml следующим образом:
xmlns:MyNamespace="clr-namespace:MyNamespace;assembly=MyApp"
....
{x:Type MyNamespace:MyClass:MyEnum} // DOESN'T WORK
но VS жалуется, что он не может найти открытый тип MyEnum
. Я также попытался использовать синтаксис +
, основанный на одном из ответов на этот пост...
{x:Type MyNamespace:MyClass+MyEnum} // DOESN'T WORK
но это тоже не работает.
Обратите внимание, что x:Static
работает с синтаксисом +
:
{x:Static MyNamespace:MyClass+MyEnum.A} // WORKS
И если я перемещаю MyEnum
из MyClass
, я могу ссылаться и на него. Но нет, если он вложен...
Так что мне не хватает? Как связать вложенное перечисление из XAML с помощью x:Type
? (И обратите внимание, я не пытаюсь создать что-либо, просто ссылаюсь на тип).
ОБНОВЛЕНИЕ
Похоже, это просто ошибка с дизайнером VS 2010. Дизайнер жалуется, что Type MyNamespace:MyClass+MyEnum was not found
. Но приложение, похоже, работает и правильно обращается к вложенному типу. Я тоже пробовал это с вложенным классом, и он работает во время выполнения.
Возможная открытая ошибка: http://social.msdn.microsoft.com/forums/en-US/wpf/thread/12f3e120-e217-4eee-ab49-490b70031806/
Связанная ветка: Ошибка времени создания при вводе вложенного типа в xaml