WPF zone de liste déroulante de liaison
J'ai eu deux zones de liste modifiables et deux d'entre eux ont la liaison avec le même Source.
<ComboBox ItemsSource="{Binding Source={StaticResource UsersViewSource}}"
Et lorsque je change quelque chose dans la première, il reflète également à la seconde. Et je ne sais pas comment garder leur SelectedItem valeurs séparément, à l'aide de la même ItemsSource.
OriginalL'auteur iLemming | 2010-03-16
Vous devez vous connecter pour publier un commentaire.
La IsSynchronizedWithCurrentItem propriété doit être définie sur False:
Voici un échantillon:
IsSynchronizedWithCurrentItem="False"
dans votre cité de code est complètement inutile, parce que vous n'êtes pas de liaison à unCollectionView
. Si vous prenez ces attributs, les zones de liste modifiables encore ne sont pas liés.Convient qu'il est peut-être pas le meilleur exemple, mais définissez la valeur sur True et ils ne synchroniser comme s'ils étaient liés à un CollectionView (mon hypothèse). Si en effet cela ne fonctionne pas avec un CollectionView, alors tous les moyens, je les supprime la réponse et à pied d'apprendre quelque chose de moi-même.
Jeté un projet rapide et testée pour voir si le IsSynchronizedWithCurrentItem propriété va travailler avec un CollectionView et il ne fonctionne en effet. Il est vrai que ma réponse n'est pas tout à fait correcte, mais il fournit un moyen rapide Kaxaml exemple);
OriginalL'auteur Metro Smurf
Vous suffit de définir le
IsSynchronizedWithCurrentItem
propriété à false (par défaut, elle est nulle)OriginalL'auteur Thomas Levesque
Je suppose (du nom de votre liaison) que la raison de ce qui se passe c'est que vous êtes de la liaison à un
CollectionViewSource
(qui encapsule une collection). Cette classe est un proxy qui WPF utilise qui comprend (entre autres choses) l'élément sélectionné d'une collection. Évidemment, si vous êtes le partage de cette collection, entre deux zones de liste modifiables, vous êtes également le partage de l'élément sélectionné.Si vous définissez
ItemsSource
à quelque chose qui est pas unCollectionViewSource
, la commande sera automatiquement renvoyé à la ligne dans une. Donc, ma suggestion serait de se lier directement à une collection à la place de l'emballage dans unCollectionViewSource
- ou, alternativement, de créer deuxCollectionViewSource
cas, un pour chaqueComboBox
.OriginalL'auteur Dan Puzey
Vous pouvez séparément lier la propriété SelectedItem pour chaque zone de liste modifiable séparément.
c'est à dire
De cette façon, lorsque chaque élément est défini, il est stocké dans un endroit différent.
OriginalL'auteur Chris