J'ai reçu un exemple d'application mvvm. L'interface utilisateur a une zone de texte, un bouton et une liste déroulante. quand j'entre quelque chose dans la zone de texte et que j'appuie sur le bouton, le texte que je saisis est ajouté à une collection observable. Le Combobox est lié à cette collection. Comment puis-je obtenir la liste déroulante pour afficher automatiquement la chaîne nouvellement ajoutée?WPF - Contenu de la liste déroulante de rafraîchissement automatique
Répondre
Si je comprends bien, vous voulez ajouter un élément et le sélectionner. Voici un exemple de comment cela peut être fait en utilisant ViewModel et les liaisons.
Xaml:
<StackPanel>
<TextBox Text="{Binding ItemToAdd}"/>
<ComboBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" />
<Button Content="Add" Click="Button_Click"/>
</StackPanel>
ViewModel:
public class MainViewModel:INotifyPropertyChanged
{
public ObservableCollection<string> Items { get; set; }
public string ItemToAdd { get; set; }
private string selectedItem;
public string SelectedItem
{
get { return selectedItem; }
set
{
selectedItem = value;
OnPropertyChanged("SelectedItem");
}
}
public void AddNewItem()
{
this.Items.Add(this.ItemToAdd);
this.SelectedItem = this.ItemToAdd;
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
Le MainViewModel
a 3 propriétés (une pour le TextBox
et deux autres pour la ComboBox
) et la méthode AddNewItem
sans paramètres.
La méthode peut être déclenché à partir d'une commande, mais il n'y a pas de classe standard pour les commandes, donc je vais l'appeler à partir du code-behind:
((MainViewModel)this.DataContext).AddNewItem();
Vous devez donc définir explicitement un élément ajouté comme sélectionné après l'avoir ajouté à une collection.
Parce que la méthode OnItemsChanged
de la classe ComboBox
est protégée et ne peut pas être utilisée.
Si la zone de liste déroulante est liée à une ObservableCollection, la zone de liste déroulante sera mise à jour dès que la collection est modifiée. C'est l'avantage d'utiliser un ObservableCollection - vous n'avez pas besoin de faire de codage supplémentaire pour mettre à jour l'interface utilisateur.
Si ce n'est pas le comportement que vous voyez, vous pouvez peut-être poster du code/xaml.
- 1. WPF Recherche automatique élément de liste déroulante
- 2. Commutateur de liste déroulante automatique dans WPF
- 3. Rafraîchissement automatique
- 4. WPF supprimer l'élément de la liste déroulante
- 5. Sélection automatique de la valeur de la liste déroulante
- 6. Rafraîchissement d'une liste déroulante après la réinitialisation des éléments
- 7. Liste déroulante de remplissage automatique dans ASP.NET
- 8. Liste déroulante horizontale de défilement automatique
- 9. Liste déroulante de défilement automatique wp7
- 10. élément listview de rafraîchissement automatique android
- 11. Problème de rafraîchissement des ressources WPF
- 12. Supprimer l'élément de liste déroulante de la zone de liste déroulante WPF
- 13. Rafraîchissement automatique avec Javascript?
- 14. Rafraîchissement automatique Aide UITableView
- 15. WPF zone de liste déroulante en surbrillance
- 16. articles de liste déroulante dans WPF
- 17. WPF: ComboBox sans bouton de liste déroulante
- 18. Comment afficher la liste déroulante dans une liste déroulante dans WPF?
- 19. Zone de liste déroulante Entrer événement WPF
- 20. WPF zone de liste déroulante bizarre problème
- 21. SortDescription et rafraîchissement automatique de l'ordre trié
- 22. Contenu de la fonction de rafraîchissement automatique Utilisation des variables de passage jQuery et AJAX
- 23. WPF/DeferRefresh avec la liste déroulante liée
- 24. Comment effacer la liste déroulante WPF?
- 25. jquery problème de script de rafraîchissement automatique
- 26. Liste déroulante WPF combobox index
- 27. Comment implémenter la validation de zone de liste déroulante Wpf
- 28. Liaison d'une liste déroulante wpf à une liste déroulante
- 29. Rails de rafraîchissement automatique 3.2 contenu de la page qui utilise javascript
- 30. table de rafraîchissement automatique ne fonctionne pas