Ошибка времени разработки при записи вложенного типа в xaml - PullRequest
2 голосов
/ 17 февраля 2010

Я создал usercontrol, который принимает тип enum и присваивает значения этого enum элементу управления ComboBox в этом usercontrol. Очень просто. Я использую этот элемент управления в DataTemplates. Проблема возникает, когда появляется вложенный тип. Я назначаю это, используя эту запись

EnumType = "{x: Тип myNamespace: ParentType + NestedType}"

Отлично работает во время выполнения. но во время разработки он выдает ошибку, говоря

Could not create an instance of type 'TypeExtension'

Почему? Из-за этого я не могу видеть свое окно во время разработки. Любая помощь?

Ответы [ 2 ]

2 голосов
/ 08 декабря 2011

Согласно этой записи Вам необходимо использовать возможности, предоставляемые классом MarkupExtension.

, однако есть и другой способ:

<ObjectDataProvider 
    MethodName="GetValues"
    ObjectType="{x:Type sys:Enum}"
    x:Key="NestedEnumDataProvider">
    <ObjectDataProvider.MethodParameters>
        <x:Type TypeName="myNamespace:ParentType+NestedType"/>
    </ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
1 голос
/ 12 декабря 2011

По словам Роба Рельея из Microsoft, это дефект в конструкторе VS2008 / 2010.

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

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

...