Поле со списком привязки wpf для перечисления в другом пространстве имен

Я пытаюсь привязать XAML ComboBox, чтобы его элементы списка были членами перечисления System.IO.Ports.Parity.

Я нашел множество примеров перечислений привязки данных, но, похоже, они не работают, если перечисление находится в другом пространстве имен (например, System.IO.Ports).

Прямо сейчас у меня есть:

<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="parityValues">
        <ObjectDataProvider.MethodParameters>
            <x:Type TypeName="System.IO.Ports.Parity" />
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>

Но я получаю сообщение об ошибке «Ссылка на тип не может найти общедоступный тип с именем 'System.IO.Ports.Parity'».

Есть идеи, как это сделать?


person Klay    schedule 16.07.2009    source источник


Ответы (2)


Добавление чего-то вроде

xmlns:sysioports="clr-namespace:System.IO.Ports;assembly=System"

а затем измените строку <x:Type /> на

<x:Type TypeName="sysioports:Parity" />

Должен заставить его работать.

person toad    schedule 16.07.2009
comment
Мне удалось во всем этом разобраться, кроме части sysioports: Parity. Не удалось найти, где это задокументировано ... - person Klay; 16.07.2009

просто потому, что вы должны включать и использовать пространство имен, подобное этому

<Window xmlns:custom="clr-namespace:System.IO.Ports.Parity;assembly=SampleLibrary">
...
  <x:Type TypeName="custom:Parity" />
...
</Window>
person Arsen Mkrtchyan    schedule 16.07.2009