Verwirrt über CollectionViewSource (SelectedItem funktioniert nicht in Combos)

Ich habe eine Reihe von Combos, die alle die gleichen verfügbaren Auswahlmöglichkeiten haben. Diese Auswahlmöglichkeiten stehen in einer Sammlung zur Verfügung, die in meinem ViewModel verfügbar ist. Alles in Ordnung und gut.

Ich möchte jetzt, dass diese Auswahlmöglichkeiten sortiert werdenICollectionView von meinem ViewModel statt meinem üblichenReadonlyObservableCollection<T>und sortieren Sie die Sammlungsansicht in meinem ViewModel.

<code>class EditStuffViewModel : ViewModelBase
{
    public EditStuffViewModel (ObservableCollection<Choice> choices)
    {
        Choices = new CollectionViewSource() { Source = choices }.View;
        Choices.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
    }

    public ICollectionView Choices
    {
        get;
        private set;
    }

    //snip other properties
}
</code>

Das alles funktioniert gut, außer dass jetztAlle meine Combos synchronisieren jetzt ihre Auswahl.

Das will ich nicht. Ich möchte, dass die Auswahlmöglichkeiten geteilt werden, aber die Auswahlmöglichkeiten ihren normalen Bindungen entsprechen. Ich glaube, ich habe verstanden, dass meine CollectionView die Auswahl verfolgt, aber ich dachte, dieses Verhalten wurde für jedes Steuerelement aktiviert.

Ich habe explizit versucht einzustellenIsSynchronizedWithCurrentItem="False" Auf meine Combos, die sie erfolgreich entkoppeln, aber dann auf meine SchrankeSelectedItem wird in der Kombination nie ausgewählt (der gebundene Getter des ViewModel wird aufgerufen, aber das Ergebnis wird nie ausgewählt). Durch die Auswahl eines Elements wird der Setter meines ViewModel anscheinend korrekt aktualisiert.

Ich vermisse offensichtlich etwas Grundlegendes für die Funktionsweise von CollectionView. Kann mich jemand aufklären?

BEARBEITEN: Mein schlechtes, dasTUT arbeiten mitIsSynchronizedWithCurrentItem="False". Siehe meine Antwort für Details.

Prost.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage