Смущен насчет CollectionViewSource (SelectedItem не работает в комбо)
У меня есть несколько комбинаций, которые имеют одинаковый доступный выбор. Эти варианты представлены в коллекции, представленной в моей ViewModel. Все отлично и денди.
Теперь я хочу отсортировать эти варианты, поэтому я решилICollectionView
из моей ViewModel вместо моего обычногоReadonlyObservableCollection<T>
и сортировать представление коллекции в моей 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>
Это все отлично работает, за исключением того, что сейчасall my combos now sync their selection.
Это не то, что я хочу. Я хочу, чтобы выбор делился, но выбор должен быть с их обычными привязками. Я думаю, что я понимаю, что мой CollectionView отслеживает выбор, но я думал, что это было поведение, выбранное для каждого элемента управления.
Я попытался явно установитьIsSynchronizedWithCurrentItem="False"
на моих комбо, которые успешно разъединяют их, но затем моя границаSelectedItem
никогда не выбирается в комбинированном списке (вызывается связанный метод ViewModel, но результат никогда не выбирается). Выбор элемента, по-видимому, правильно обновляет мой установщик ViewModel.
Я, очевидно, упускаю что-то фундаментальное из того, как должен работать CollectionView. Кто-нибудь может просветить меня?
EDITМое плохое, этоDOES работать сIsSynchronizedWithCurrentItem="False"
, Смотрите мой ответ для деталей.
Приветствия.