2011-01-14 3 views
1

Ich habe meine Items über den Designer in eine Combox eingefügt, und alles, was ich passiere, ist eine Zeichenkette.WinForms/C#: Hinzufügen von Elementen zu Combox und Steuern des Item-Wertes (numerisch)

Obwohl jetzt ich kontrollieren muss, welcher Schlüssel/Index mit jedem Gegenstand gespeichert wird.

Ich dachte, dass es ein Item-Objekt war, aber ich an der Methode ADD geschaut und es akzeptiert Objekt ..

Wie kann ich in einer Kontrolle passieren den Schlüssel/Index das heißt, was zurückgegeben wird, wenn i SelectedItem tun.

Also, wenn ich SelectedText bekomme ich wieder eine Zeichenfolge, die in dem aktuellen ausgewählten Drop-Down angezeigt wird, aber wenn ich tue, selectedItem will eine benutzerdefinierte Nummer zurück zu bekommen, die ich mit ihm zu speichern, muß ...

Beliebig Ideen wie man das macht?

Vielen Dank im Voraus

+0

Sie können Sie 'Dictionary' als Show hier http://madprops.org/blog/Bind-a-ComboBox-to-a-generic-Dictionary – Vivek

+0

po ssible Duplikat von [Kann Wert von ComboBox nicht erhalten] (http://stackoverflow.com/questions/1850946/cant-get-value-from-combobox) –

Antwort

5

Sie müssen es zu einer Sammlung von Schlüsseln \ Wertobjekte binden und die DisplayMember und ValueMember Eigenschaften verwenden, um festzulegen, was angezeigt wird/zurückgegeben.

Heres ein Beispiel:

public class ComboItem 
{ 
    public string stringValue { get; set; } 
    public int indexValue { get; set; } 
} 

public void LoadCombo() 
{ 
    List<ComboItem> list = new List<ComboItem>(); 
    // populate list... 
    // then bind list 
    myComboBox.DisplayMember = "stringValue"; 
    myComboBox.ValueMember = "indexValue"; 
    myComboBox.DataSource = list; 
} 

Dann

myComboBox.SelectedText  // will return stringValue 
myComboBox.SelectedValue  // will return indexValue 
myComboBox.SelectedItem  // will return the ComboItem itself 
myComboBox.SelectedIndex  // will return the items index in the list 

Alternativ können Sie den Index speichern, indem eine Tag Eigenschaft hinzugefügt (die oft Dinge verwendet wird, wie dies zu speichern), indem Sie eine benutzerdefinierte Combo zu schaffen Artikel, have a read here for how to do this

+0

Vielen Dank! Es hat super funktioniert. – Martin