2009-07-16 8 views
2

Ich versuche, eine XAML ComboBox zu binden, so dass ihre Listenelemente die Mitglieder der System.IO.Ports.Parity enum sind.wpf Binding Combobox zum Auflösen in verschiedenen Namespace

Ich habe viele Beispiele für Databinding Enums gefunden, aber es scheint, dass diese nicht funktionieren, wenn die Enum in einem anderen Namespace (wie System.IO.Ports) ist.

Im Moment habe ich:

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

Aber ich bekomme die Fehlermeldung „Typenbezeichnung nicht öffentlich Typ mit dem Namen‚System.IO.Ports.Parity‘beinhalten.“

Irgendwelche Ideen, um dies zu erreichen?

Antwort

4

Hinzufügen von so etwas wie

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

und dann schließen und verwenden, um

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

Sollte es funktioniert.

+0

Es ist mir gelungen, das alles herauszufinden, mit Ausnahme des Teils "sysioports: Parity". Konnte nicht finden, wo das dokumentiert wurde ... – Klay

4

, nur weil Sie sollten Namespace wie diese die <x:Type /> Zeile ändern

<Window xmlns:custom="clr-namespace:System.IO.Ports.Parity;assembly=SampleLibrary"> 
... 
    <x:Type TypeName="custom:Parity" /> 
... 
</Window> 
+0

Danke! Das funktioniert perfekt! – Klay