29. januar 2010 - 12:36Der er
3 kommentarer og 1 løsning
DataTextField i kompleks IDictionary
Jeg vil gerne binde en kompleks IDictionary til en liste.
Jeg har en klasse der ser således ud: public class InfoTag { public int id; public int parent; public string text; }
Jeg har så en IDictionary der ser således ud: IDictionary<int, InfoTag> info
Nu vil jeg gerne binde min "info" til en liste, men problemet er, at jeg ikke bare kan nøjes med at pege på "value" (som altid er "namespace.InfoTag") for jeg skal bruge værdien i "text".
Ovenstående virker for så vidt at jeg nu får vist en liste hvor teksten er "namespace.InfoTag". I stedet vil jer have værdierne i hvad der svarer til Value.text. Men denne kan jeg ikke pege på i min DataTextField.
Mød en af Nordens fremmeste eksperter i adfærdsdesign – Morten Münster, der bl.a. har skrevet ” Jytte fra marketing er desværre gået for i dag” – på Computerworld Cloud & AI Festival.
Vil lige nævne at jeg pt har lavet en lille funktion der kører min eksisterende info IDictionary igennem for så at returnere en mere simpel struktur (SortedList<string, int>) - men kan det gøres mere elegant vil jeg meget gerne høre om det :-)
Første del skyldes jo du finder dit objekt og ikke din objekt værdier. En måde at gøre det på er at override objektets ToString() metode. Som du jo kalder med "value".
Ex. I din InfoTag klasse lav en ny metode:
public override string ToString() { return text; }
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.