Zdezorientowany o CollectionViewSource (SelectedItem nie działa w kombinacjach)

Mam kilka kombinacji, które dzielą te same dostępne opcje. Te opcje są dostępne w kolekcji udostępnionej z mojego ViewModel. Wszystko dobrze i elegancko.

Chcę teraz posortować te opcje, więc postanowiłem ujawnićICollectionView z mojego ViewModel zamiast mojego zwykłegoReadonlyObservableCollection<T>i posortuj widok kolekcji w moim ViewModelu.

<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>

To wszystko działa dobrze, poza tym terazwszystkie moje kombinacje synchronizują teraz swój wybór.

To nie jest to, czego chcę. Chcę, aby wybory były współdzielone, ale wybory były do ​​ich normalnych powiązań. Myślę, że rozumiem, że moja kolekcja CollectionView śledzi wybór, ale myślałem, że to zachowanie było włączone dla każdej kontrolki.

Próbowałem wyraźnie ustawićIsSynchronizedWithCurrentItem="False" na moich combo, które z powodzeniem oddziela je, ale potem moje powiązanieSelectedItem nigdy nie jest wybierane w combo (wywoływany getter związany z ViewModel jest wywoływany, ale wynik nie jest nigdy wybierany). Wybranie elementu wydaje się aktualizować poprawnie mój setter Viewera.

Oczywiście brakuje mi czegoś podstawowego do tego, jak CollectionView ma działać. Czy ktoś może mnie oświecić?

EDYTOWAĆ: Moje złe, toROBI pracować zIsSynchronizedWithCurrentItem="False". Zobacz moją odpowiedź po szczegóły.

Twoje zdrowie.

questionAnswers(2)

yourAnswerToTheQuestion