direi (dal nome del vostro vincolante) che la ragione per questo sta accadendo è che si sta legandosi a un CollectionViewSource
(che avvolge un collezione). Questa classe è un proxy utilizzato da WPF che include (tra le altre cose) l'elemento selezionato di una raccolta. Ovviamente se condividi questa raccolta tra due caselle combinate, condividi anche l'elemento selezionato.
Se si imposta ItemsSource
a qualcosa che non è un CollectionViewSource
, il controllo andrà a capo automaticamente in uno. Quindi, il mio suggerimento sarebbe quello di associare direttamente a una raccolta invece di eseguire il wrapping in un CollectionViewSource
- o, in alternativa, creare due istanze CollectionViewSource
, una per ogni ComboBox
.
fonte
2010-03-16 23:20:33
L'ironia della tua risposta è che - come spiega la tua citazione - il 'IsSynchronizedWithCurrentItem =" False "' nel tuo codice citato è completamente inutile, perché non sei vincolante per un 'CollectionView'. Se togli questi attributi, le caselle combinate non sono ancora collegate. –
Concordato che potrebbe non essere l'esempio migliore, ma impostare il valore su True e si sincronizzano come se fossero associati a un CollectionView (la mia ipotesi). Se in effetti questo non funziona con un CollectionView, allora significa che eliminerò la risposta e andrò via imparando qualcosa da me stesso. –
Ha unito un progetto rapido e verificato per vedere se la proprietà IsSynchronizedWithCurrentItem funzionerà con un CollectionView e funziona davvero. Certo, la mia risposta non è esattamente corretta, ma fornisce un rapido esempio di Kaxaml;) –