web-dev-qa-db-fra.com

WPF - ajoute des éléments statiques à une liste déroulante

Je l'ai déjà dit et je le répète, les exemples les plus simples pour WPF sont également les plus difficiles à trouver sur le Web :)

J'ai une liste déroulante que je dois afficher, mais elle n'a pas besoin d'être databound ni quoi que ce soit d'autre, le contenu est statique. Comment puis-je ajouter une liste statique d'éléments à ma liste déroulante à l'aide de XAML?

78
Unknown Coder

Voici le code de MSDN et le lien - Article Link , que vous devriez vérifier pour plus de détails.

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

Comme ça:

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

Vous pouvez également ajouter des éléments dans le code:

cboWhatever.Items.Add("SomeItem");

En outre, vous pouvez le faire pour ajouter quelque chose pour lequel vous contrôlez l'affichage/la valeur ((presque catégoriquement nécessaire dans mon expérience)). J'ai trouvé une bonne référence de stackoverflow ici:

Combobox Paire Valeur/Valeur dans WPF

Le code de synthèse pourrait ressembler à ceci:

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"));
8
omJohn8372
<ComboBox Text="Something">
            <ComboBoxItem Content="Item1"></ComboBoxItem >
            <ComboBoxItem Content="Item2"></ComboBoxItem >
            <ComboBoxItem Content="Item3"></ComboBoxItem >
</ComboBox>
2
ritesh seth