21. april 2008 - 13:31
Der er
8 kommentarer og 1 løsning
Dictonary med databinding?
Hej, er der nogen der ved hvordan man kan lave databinding med en dictonary, jeg har prøvet men det virker ikke: public dictonarytest() { InitializeComponent(); Dictionary<int, string> fruit = new Dictionary<int, string>(); fruit.Add(1, "Kiwi"); fruit.Add(2, "Pear"); fruit.Add(3, "Mango"); fruit.Add(4, "Blueberry"); fruit.Add(5, "Apricot"); fruit.Add(6, "Banana"); fruit.Add(7, "Peach"); fruit.Add(8, "Plum"); listBox1.DisplayMember = "Value"; listBox1.ValueMember = "Value"; listBox1.DataSource = fruit;
Annonceindlæg fra Arctic Wolf
21. april 2008 - 14:20
#1
Jeg tror ikke du kan bruge en Dictionary på den måde! lav en Fruit klasse i stedet for, og brug en BindingList<Fruit> eller en List<Fruit>. public class Fruit { public Fruit(string name, int id) { this.Name = name; this.id = id; } public string Name; public int Id; } public void FruidTest() { List<Fruit> fruits = new List<Fruit>(); fruits.Add(new Fruit("Kiwi", 1)); fruits.Add(new Fruit("Pear", 2)); listBox1.DisplayMember = "Name"; listBox1.ValueMember = "Id"; ListBox1.DataSource = fruits; }
21. april 2008 - 14:48
#2
ok, tak. hvis nu jeg tilføjer mange objekter med ID 2 til listen, og jeg efterfølgende vil finde alle de navne med 2 som ID, og vise både navn og ID i en listbox, ved du hvordan koden til det skal være?
21. april 2008 - 15:36
#3
for (int idx = 0; idx < listBox1.Items.Count; idx++) { listBox1.SetSelected(idx, ((fruit)this.listBox1.Items[idx]).Id == 1); }
21. april 2008 - 16:46
#4
Der sker ikke noget når jeg bruger koden? private void button2_Click(object sender, EventArgs e) { List<Fruit> fruits = new List<Fruit>(); fruits.Add(new Fruit("Kiwi", 1)); fruits.Add(new Fruit("Pear", 2)); for (int idx = 0; idx < listBox1.Items.Count; idx++) { listBox1.SetSelected(idx, ((Fruit)this.listBox1.Items[idx]).PropertyId == 1); }
21. april 2008 - 16:47
#5
public class Fruit { protected string Name; protected int Id; public Fruit(string Name, int Id) { this.Name = Name ; this.Id = Id; } public virtual string PropertyName { get { return Name ; } set { Name = value; } } public virtual int PropertyId { get { return Id; } set { Id = value; } }
21. april 2008 - 20:32
#6
private void button2_Click(object sender, EventArgs e) { List<Fruit> fruits = new List<Fruit>(); fruits.Add(new Fruit("Kiwi", 1)); fruits.Add(new Fruit("Pear", 2)); listBox1.DataSource = fruits; listBox1.DisplayMember = "PropertyName"; for (int idx = 0; idx < listBox1.Items.Count; idx++) { listBox1.SetSelected(idx, ((Fruit)this.listBox1.Items[idx]).PropertyId == 1); } }
23. april 2008 - 15:47
#7
Hej tak for svaret, jeg afprøver det lige om et par dage :)
22. december 2010 - 18:13
#8
ved godt det er sent jeg vender tilbage :) men smid et svar hvis du vil have points
22. december 2010 - 21:57
#9
Svar. :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.