WPF: agregue elementos estáticos a un cuadro combinado


82

Lo he dicho antes y lo diré de nuevo, los ejemplos más fáciles de WPF también son los más difíciles de encontrar en la web :)

Tengo un cuadro combinado que necesito mostrar, pero no es necesario que esté vinculado a datos ni nada más, el contenido es estático. ¿Cómo puedo agregar una lista estática de elementos a mi cuadro combinado usando XAML?

Respuestas:


131

Aquí está el código de MSDN y el enlace: Enlace del artículo , que debe consultar para obtener más detalles.

<ComboBox Text="Is not open">
    <ComboBoxItem Name="cbi1">Item1</ComboBoxItem>
    <ComboBoxItem Name="cbi2">Item2</ComboBoxItem>
    <ComboBoxItem Name="cbi3">Item3</ComboBoxItem>
</ComboBox>

22

Me gusta esto:

<ComboBox Text="MyCombo">
<ComboBoxItem  Name="cbi1">Item1</ComboBoxItem>
<ComboBoxItem  Name="cbi2">Item2</ComboBoxItem>
<ComboBoxItem  Name="cbi3">Item3</ComboBoxItem>
</ComboBox>

10

También puede agregar elementos en el código:

cboWhatever.Items.Add("SomeItem");

Además, para agregar algo en el que controle la visualización / valor (casi categóricamente necesario en mi experiencia) puede hacerlo. Encontré una buena referencia de stackoverflow aquí:

Cuadro combinado de pares clave-valor en WPF

El código de resumen sería algo como esto:

ComboBox cboSomething = new ComboBox();
cboSomething.DisplayMemberPath = "Key";
cboSomething.SelectedValuePath = "Value";
cboSomething.Items.Add(new KeyValuePair<string, string>("Something", "WhyNot"));
cboSomething.Items.Add(new KeyValuePair<string, string>("Deus", "Why"));
cboSomething.Items.Add(new KeyValuePair<string, string>("Flirptidee", "Stuff"));
cboSomething.Items.Add(new KeyValuePair<string, string>("Fernum", "Blictor"));

2
<ComboBox Text="Something">
            <ComboBoxItem Content="Item1"></ComboBoxItem >
            <ComboBoxItem Content="Item2"></ComboBoxItem >
            <ComboBoxItem Content="Item3"></ComboBoxItem >
</ComboBox>

1
Agregue información también sobre por qué su solución podría ayudar al OP
milo526
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.