gracias por las respuestas.
Cuando coloco un punto de interrupción en el evento SelectionChanged, se interrumpe el proceso antes de que la pantalla esté completamente cargada. También verá que la primera fila se 'selecciona' luego en la lista. No estoy vinculando a SelectedIndexValue como puede ver en el código. El DataContext para la lista es ReadonlyCollection
En mi evento SelectionChanged como puede ver notifico que otros objetos se carguen con datos relacionados con el elemento seleccionado. Solo quiero que esto suceda cuando se selecciona uno, pero no uno predeterminado para establecer. Tengo que ver estas ListViews que representan datos similares, pero al cargar ninguno debe tener un elemento seleccionado.
He notado que el índice predeterminado seleccionado se establece en -1 en la ventana de propiedades para la vista de lista. Incluso puedo configurar este código en el evento List_Loaded, pero para entonces ya ha sucedido el primer SelectionChanged.
<ListView PreviewMouseDown="ActiveCasesView_MouseDown" x:Name="ActiveCasesView"
DataContext="{StaticResource ActiveCasesViewSource}"
ItemsSource="{Binding}"
ItemTemplate="{StaticResource CasesItemTemplate}"
SelectionMode="Single"
SelectionChanged="ActiveCasesView_SelectionChanged"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto" >
</ListView>
private void ActiveCasesView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (mouseClicked)
if (e.AddedItems.Count > 0)
App.Messenger.NotifyColleagues(App.MSG_SELECT_ACTIVE_CASE, ((CaseViewModel)ActiveCasesView.SelectedItem).CaseNumber);
}
que añade el PreviewMouseDown para establecer un indicador que he hecho clic en la vista de lista en caso SelectionChanged. Esto ayuda, pero no estoy convencido de que sea la mejor solución.
Gracias Petrus
Hey Petrus. ¿Podría compartir su código? – Anvaka