2011-07-30 19 views
6

Tengo una vista de datos a través de mvvm light a un modelo de vista en mi proyecto WP7. La vista contiene un cuadro de lista con los siguientes ajustes:SelectedItem establecido en el primer elemento con CollectionViewSource

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

El StationList es un ObservableCollection.

Ahora, cuando la vista se carga, ¡todo se ve muy bien! ¡Se muestra la lista y NO se selecciona ningún elemento!

Pero cuando cambio el XAML a:

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

Con la StationListSorted ser un tipo simple de una propiedad en la StationList como CollectionViewSource. ¡¡Ahora las cosas se ponen feas !! La misma vista se carga con los mismos elementos en el cuadro de lista, pero ahora está ordenada correctamente, PERO se selecciona el primer elemento y se establece la propiedad selectedItem.

¿Cómo puedo ordenar un ListBox con un CollectionViewSource SIN seleccionar automáticamente mi primer elemento?

Respuesta

15

En su cuadro de lista, intente configurar IsSynchronizedWithCurrentItem y vea qué valor (verdadero o falso) produce el efecto deseado.

+2

Configurarlo en False hizo el truco! ¡Gracias por el consejo! – Depechie

+1

¿Pero POR QUÉ? ¿Por qué es esta la respuesta? –

+0

No sé si esta es la respuesta correcta, pero parece que CollectionView predeterminado se crea sin elemento actual seleccionado, pero después de aplicar un orden, se selecciona un elemento actual. Al decir que los controles vinculados a datos no se sincronizan con el elemento actual, no se actualizan automáticamente con el valor del elemento actual de CollectionView. – sellmeadog

Cuestiones relacionadas