Hallo liebe Gemeinde,
ich muss nun auch mal eine Frage zu einem Problem stellen und wäre für Hilfestellung sehr dankbar.
Also folgendes: Ich habe in einer Datenbank eine Lookup-Tabelle, die mithilfe des Entity Frameworks in eine Klasse gewandelt wird. Die Struktur ist wie folgt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| public class Lookup { public Guid Id { get; set; } public string Context { get; set; } public string Value { get; set; } public int Order { get; set; } } |
Also, es gibt in der Tabelle verschiedene Contexte, einer davon ist z.B. Sex (also Geschlecht)
Die Values sind dann die versch. Arten des Geschlechtes, und die Order ist einfach nur die Reihenfolge bei der Anzeige. Die Id ist der Primärschlüssel.
So, nun gibt es noch eine Tabelle Person, die Struktur ist in etwa wie folgt:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| public class Person { public string Name { get; set; } public string LastName { get; set; } public Guid IdSex { get; set; } public Guid IdType { get; set; } ... } |
So, dabei spiegelt also IdSex den Wert aus der Lookuptabelle mit der Id und dem Context "Sex" wieder. Und IdType einen anderen Wert unter einem anderen Context.
Ich hoffe, dass man das soweit versteht.
Nun zu eigentlichen Problem:
In der Benutzeroberfläche sollen die versch. Lookupwerte der versch. Contexte in Comboboxen dargestellt werden.
Dazu habe ich einen IValueConverter, dem ich den Context übergebe, und der mir dann alle Lookupwerte dazu zurückliefert. Die Anzeige klappt schon.
Aus einer Liste von Personen wird eine ausgewählt. Nun soll das SelectedItem der ComboBox natürlich auf den richtigen Lookupwert gesetzt werden, sowie bei Veränderung des SelectedItems auch die Id bei der Person neu gesetzt werden. Und genau hier ist das Problem. Denn das SelectedItem, was ich binde, ist ein Objekt vom Typ Lookup, und die Id ist eben ein Guid. Bin ziemlich am verzweifeln. Aber die Lösung ist bestimmt ganz leicht...
Bin jedem dankbar, der sich den Roman durchgelesen hat, und mir vielleicht auch noch helfen kann!
Marko