2011-07-30 9 views
6

Mam widok databound poprzez światło mvvm do viewmodel w moim projekcie WP7. Widok zawiera listbox z następującymi ustawieniami:SelectedItem jest ustawiony na pierwszy element z CollectionViewSource

<ListBox x:Name="StationList" 
    ItemsSource="{Binding StationList}" 
    SelectedItem="{Binding SelectedStation, Mode=TwoWay}" 
    > 

StationList jest ObservableCollection.

Teraz, gdy widok zostanie załadowany, wszystko wygląda świetnie! Lista jest wyświetlana i NIE wybrano pozycji!

Ale kiedy zmienić XAML do:

<ListBox x:Name="StationList" 
      ItemsSource="{Binding Source={StaticResource StationListSorted}}" 
      SelectedItem="{Binding SelectedStation, Mode=TwoWay}" 
      > 

Z StationListSorted jest prosta właściwość sortowania na StationList jako CollectionViewSource. Teraz sprawy stają się brzydkie !! Ten sam widok jest załadowany tymi samymi elementami w polu listy, ale teraz poprawnie posortowane, ALE wybierany jest pierwszy element i ustawiona właściwość selectedItem !!

Jak mogę posortować ListBox za pomocą źródła CollectionViewSource BEZ automatycznego wybierania mojego pierwszego elementu?

Odpowiedz

15

W swoim polu wyboru spróbuj ustawić IsSynchronizedWithCurrentItem i sprawdzić, która wartość (prawda lub fałsz) daje pożądany efekt.

+2

Ustawienie na False wykonało lewę! Dzięki za wskazówkę! – Depechie

+1

Ale DLACZEGO ?! Dlaczego to jest odpowiedź? –

+0

Nie wiem, czy to jest właściwa odpowiedź, ale wygląda na to, że domyślny CollectionView został utworzony bez wybranego bieżącego elementu, ale po zastosowaniu sortowania wybrany jest bieżący element. Mówiąc, że kontrolki związane z danymi nie są synchronizowane z bieżącym elementem, nie są automatycznie aktualizowane z bieżącą wartością elementu CollectionView. – sellmeadog

Powiązane problemy