Autor Beitrag
Oppi35
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 3



BeitragVerfasst: Do 30.12.10 16:48 
Hallo Zusammen,

wenn ich die hier genannte Enumeration (TestEnumeration) im Namespace, aber nicht innerhalb einer Klasse definiere, funktioniert alles super. Definiere ich die Enumeration aber innerhalb einer Klasse (class Testclass) bekomme ich keinen gültigen Verweis hin. Habe bereits folg. probiert:
- Type="mapping:Testclass.TestEnumeration"
- Type="mapping:Testclass+TestEnumeration"

Kann mir hier jemand weiterhelfen?

Die Enumeration sieht wie folgt aus:
public enum Testenumeration { a,b,c }

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
<Window x:Class="Aktionen_Druckdatensatz.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mapping="clr-namespace:Druckdatensatz_dll;assembly=Druckdatensatz_dll"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        xmlns:local="clr-namespace:Aktionen_Druckdatensatz"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        
        <ObjectDataProvider x:Key="enumcombo" MethodName="GetNames" ObjectType="{x:Type sys:Enum}">
            <ObjectDataProvider.MethodParameters>
                <x:Type Type="mapping:TestEnumeration" />
            </ObjectDataProvider.MethodParameters>
        </ObjectDataProvider>
    </Window.Resources>



Gruß Frank
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 30.12.10 16:59 
XAML unterstützt keine Angabe von Nested Types. Abgesehen davon habe ich den ObjectDataProvider noch nie benutzt, im Code Behind zu binden ist dann doch ein wenig flexibler und unschwurbeliger ;) .

_________________
>λ=
Trashkid2000
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 561
Erhaltene Danke: 137



BeitragVerfasst: Do 30.12.10 18:32 
Hallo,
sieht so aus, als ob nur XAML und der Designer damit Probleme hätten, denn laufen tut es ja mit dem "+" zwischen Kalssennamen und Enum. Habe das mal auf stackoverflow stackoverflow.com/qu...um-nested-in-a-class gefunden:
ausblenden XML-Daten
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
<Window.Resources>
    <ObjectDataProvider
        MethodName="GetValues"
        ObjectType="{x:Type sys:Enum}"
        x:Key="TestValues">
        <ObjectDataProvider.MethodParameters>
            <w:Type2
                TypeName="w:Test+TestEnum" />
        </ObjectDataProvider.MethodParameters>
    </ObjectDataProvider>
</Window.Resources>
Was das "Type2" ist, weiss ich allerdings nicht. Entweder, es ist eine Selbstimplementierung, oder bei .NET 4.0 mit dabei.
Marko
Kha
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Do 30.12.10 19:27 
Type2Extension ist eben der Workaround um die beschriebene Einschränkung...

_________________
>λ=
Oppi35 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 95
Erhaltene Danke: 3



BeitragVerfasst: Fr 31.12.10 00:12 
Hallo Zusammen,

vielen Dank erstmal für Eure Hilfe.

Marko, ich verstehe hier zwar auch noch nicht alles, aber zu Deiner Frage bzgl. Type2 kann ich Dir folg. sagen:

Es wurde in Deinem Link eine Klasse Type2Extension erstellt, die von TypeExtension abgeleitet ist.

Bei der Verwendung des Befehls "w:Type2" wird nach der Klasse Type2 gesucht. Wird die Klasse nicht gefunden, wird automatisch "Extension" hinten angehängt und erneut gesucht. Wie dies funktioniert weiß ich noch nicht, steht aber in meinem WPF Buch. Also wird nach der hier erstellten Klasse Type2Extension gesucht (und gefunden).

Genauere Zusammenhänge kann ich Dir leider noch nicht erläutern:)

Ich werde jetzt einfach meine Enumerationen außerhalb der Klassen deklarieren. Dann klappts mit XAML und auch dem Designer und meine ComboBox ist gefüllt.

Also nochmal vielen Dank und einen guten Rutsch!!!

Gruß Frank