Il semble que personne n'a encore trouvé un moyen de définir le ComboBoxItem comme sélectionné avec une sélection sélectionnée = "Propriété de liaison". P>
est la solution pour utiliser une propriété isselected dans l'objet viewModel dans les itemsSource Combobox? P>
3 Réponses :
Vous n'êtes pas sûr de savoir pourquoi vous ne pouvez pas se lier à la sélection de fichiers de sélection sur une combinaison sans voir votre code. Vous trouverez ci-dessous comment le faire à l'aide d'une collectionView qui dispose de la gestion actuelle de l'élément intégré dans lequel les comboblos sont supportant. CollectionView a une propriété actuelleItem Obtenir une propriété que vous pouvez utiliser pour être actuellement sélectionnée.
xaml: p> code derrière: p>
«... Je ne sais pas pourquoi vous ne pouvez pas vous appeler des données sur SELECTELITEM sur une combinaison sans voir votre code ...« Faites un problème de Google facile. COLLECTIONView est en outre une surcharge totale dans mon cas, je ne peux plus et ne bottera pas mon observableCollection
Une collectionView peut être une vue d'une observablecolection afin de donner à nouveau quelque chose. Que voulez-vous dire que CollectionView est une surcharge totale? Parlez-vous des autres fonctionnalités qu'une collectionView fournit à côté du courant, comme le filtrage, le regroupement et le tri? Je ne sais toujours pas quel est le problème contraignant SELECTELITEM sur une combinaison.
Je n'ai pas besoin d'une collectionView c'est-ce que c'est ;-) Si je veux trier c'est le travail du contrôle, dans mon cas, la DataGrid a cette fonctionnalité. CollectionView est okish pour une liste de liste qui ne clique pas sur l'en-tête de la colonne.
Notre approche réussie pour la liaison d'une combinaison est la suivante ...
<ComboBox ItemsSource="{Binding Path=AllItems}" SelectedItem="{Binding Path=CurrentItem, Mode=TwoWay}" /> <TextBlock Text="{Binding Path=CurrentItem, Mode=TwoWay}" /> class public ItemListViewModel { public ObservableCollection<Item> AllItems {get; set;} private Item _currentItem; public Item CurrentItem { get { return _currentItem; } set { if (_currentItem == value) return; _currentItem = value; RaisePropertyChanged("CurrentItem"); } } }
C'est bizarre. Je pourrais jurer que j'ai fait exactement ce que vous avez suggéré avant parce que j'ai lu sur certains blogs ... maintenant j'ai essayé à nouveau et cela a fonctionné: P Entre-temps j'ai aidé avec cela si quelqu'un est intéressé xD // définir la nouvelle classe d'école créée Index sélectionné dans le contrôle de l'interface utilisateur. SchoolClasses.count - 1: 0;
Il suffit d'avoir ce problème. J'avais 2 collections séparées et j'ai oublié l'exploitant Equals, de sorte que la CurrentItem a été cueillie d'une autre collection que celle que j'ai liée à XAML. Donc, mettre en œuvre des égaux fixe le problème. Mais la sélection de la même collection a également fixé le problème
Qu'est-ce que j'ai trouvé, c'est que sur Combobox Soure Code, SELECTEDITEM est défini à l'aide de la liste sélectionnée Combobox utilisant
public object SelectedItem { get { int index = SelectedIndex; return (index == -1) ? null : Items[index]; } set { int x = -1; if (itemsCollection != null) { //bug (82115) if (value != null) x = itemsCollection.IndexOf(value); else SelectedIndex = -1; } if (x != -1) { SelectedIndex = x; } } }