merci pour les réponses.
Lorsque je place un point d'arrêt sur l'événement SelectionChanged, il interrompt la procédure avant que l'écran ne soit complètement chargé. Vous verrez également que la première rangée est «sélectionnée» ensuite sur la liste. Je ne lie pas à SelectedIndexValue comme vous pouvez le voir dans le code. Le DataContext pour la liste est un ReadonlyCollection
Dans mon événement SelectionChanged comme vous pouvez le voir, j'avertis d'autres objets à charger avec des données relatives à l'élément sélectionné. Je veux seulement que cela se produise quand on est sélectionné mais pas par défaut. Je dois de ces ListViews représentant des données similaires mais sur chargé aucun doit avoir un élément sélectionné.
J'ai remarqué que l'index sélectionné par défaut est défini sur -1 dans la fenêtre de propriétés de la vue de liste. Je peux même définir ceci est le code sur l'événement List_Loaded, mais d'ici là le premier SelectionChanged est déjà arrivé.
<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);
}
J'ai ajouté le PreviewMouseDown pour définir un indicateur que j'ai cliqué sur le listview en cas SelectionChanged. Cela aide mais je ne suis pas convaincu que c'est la meilleure solution.
Merci Petrus
Hey Petrus. Pourriez-vous s'il vous plaît partager votre code? – Anvaka