2013-02-27 7 views
9

Sto cercando di popolare una ComboBox con un paio di stringa, un valore. L'ho fatto in codice dietro in questo modo:come popolare un ComboBox in XAML

listCombos = new List<ComboBoxItem>(); 
item = new ComboBoxItem { Text = Cultures.Resources.Off, Value = "Off" }; 
listCombos.Add(item); 
item = new ComboBoxItem { Text = Cultures.Resources.Low, Value = "Low" }; 
listCombos.Add(item); 
item = new ComboBoxItem { Text = Cultures.Resources.Medium, Value = "Medium" }; 
listCombos.Add(item); 
item = new ComboBoxItem { Text = Cultures.Resources.High, Value = "High" }; 
listCombos.Add(item); 
combo.ItemsSource = listCombos; 

ComboBoxItem:

public class ComboBoxItem 
{ 
    public string Text { get; set; } 
    public object Value { get; set; } 

    public override string ToString() 
    { 
     return Text; 
    } 
} 

Come potete vedere, mi sto inserendo il valore Text usando il mio ResourceDictionary. Ma se lo faccio in questo modo, quando cambio lingua al runtime, il contenuto di ComboBox non lo fa.

Quindi volevo provare a riempire il mio ComboBox alla progettazione (in XAML).

Quindi la mia domanda è: come posso riempire il mio ComboBox con un paio testo, valore come sopra?

risposta

14

Si utilizzerà Tag, non Value in xaml. Questo sarebbe come questo:

<ComboBox> 
    <ComboBoxItem Tag="L" IsSelected="True">Low</ComboBoxItem> 
    <ComboBoxItem Tag="H">High</ComboBoxItem> 
    <ComboBoxItem Tag="M">Medium</ComboBoxItem> 
</ComboBox> 
+0

che era esattamente la soluzione! Grazie! :) – Sonhja