Lier une List<string> pour une zone de liste déroulante
J'ai une liste de chaînes de caractères.
Je veux remplir une liste déroulante avec une liste de chaînes de caractères. comment dois-je faire?
Toutes mes tentatives et recherches sont morts fin.
j'ai utilisé:
<ComboBox Name="comboBox2" ItemsSource="{Binding Combobox2items}" />
public partial class EditRule : Window
{
public ObservableCollection<string> Combobox2items { get; set; }
public EditRule()
{
InitializeComponent();
Combobox2items = new ObservableCollection<string>();
Combobox2items.Add("DFd");
}}
EDIT:
l'ajout de Combobox2items.ItemsSource = Combobox2items;
fonctionne, mais pourquoi ItemsSource="{Binding Combobox2items}" ne l'est pas?
Lier votre liste de zone de liste déroulante.ItemsSource
Répondre à vos edit: la Liaison ne fonctionne pas car la Liaison prend la propriété "Combobox2Items" dans votre DataContext. Mais aussi loin que je peux voir, vous n'avez jamais mis tout DataContext. Je vous conseille de lire cet article
Répondre à vos edit: la Liaison ne fonctionne pas car la Liaison prend la propriété "Combobox2Items" dans votre DataContext. Mais aussi loin que je peux voir, vous n'avez jamais mis tout DataContext. Je vous conseille de lire cet article
OriginalL'auteur Nahum | 2011-08-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez popuplate une zone de liste déroulante, en fait, chaque ItemsControl, de 2 Façons.
Première: Ajouter directement des Éléments, qui travaille dans le Code ou dans le code Xaml
mais c'est plutôt statique.
La deuxième approche utilise une liste dynamique.
Comme un exemple, supposons que vous avez une fenêtre et une zone de liste modifiable dans votre xaml. La zone de liste déroulante obtient
x:Name="myCombobox"
Dans votre code derrière vous, vous pouvez créer votre Liste et de le définir comme un
ItemsSource
cela fonctionne bien, mais qui a un problème. Si vous modifiez la Liste une fois que vous le définir comme un ItemsSource, l'INTERFACE ne sera pas rattraper la modification la plus récente. Donc, pour faire que le travail aswell, vous devez utiliser un
ObservableCollection
maintenant, la collection peut notifier tout changement de l'INTERFACE utilisateur sera à l'écoute. et d'ajouter automatiquement le nouvel élément dans la zone de liste déroulante.OriginalL'auteur dowhilefor
Tout basée sur une liste de contrôle en WPF a un
ItemsSource
de la propriété que vous pouvez attribuer ou de lier une liste de. Dans le code:... ou si votre liste est une propriété sur un objet qui est le DataContext de votre Fenêtre:
OriginalL'auteur Matt Hamilton
Utilisation
ObservableCollection<string>
au lieu deList<string>
, elle met en œuvreINotifyCollectionChanged
pour vousClasse ObservableCollection
OriginalL'auteur sll