J'ai une zone de liste dans WPF qui est liée à un ObservableCollection à l'aide de la propriété ItemSource. Cela fonctionne très bien, les éléments corrects sont affichés. La zone de liste (qui contient une liste de noms d'image) possède un gestionnaire d'événements sur l'événement SelectionChanged qui met à jour la source d'un contrôle Image avec le chemin d'accès à l'image sélectionnée (donnant ainsi un aperçu de l'image).WPF Suppression d'un élément de la zone de liste
J'ai le code suivant pour supprimer un élément de la lisbox, sur l'événement de clic d'un bouton:
if (lstLocal.SelectedIndex > -1)
{
localImages.RemoveAt(lstLocal.SelectedIndex);
}
localImages étant le ObservableCollection
et lstLocal étant le ListBox
. Cependant, lorsque je supprime l'élément sélectionné, l'événement SelectionChanged se déclenche. Mon gestionnaire d'événements SelectionChanged utilise la propriété SelectedIndex dans la zone de liste. Je reçois l'exeption Index was out of range. Must be non-negative and less than the size of the collection.
, donc je devine que la suppression d'un élément entraîne SelectedIndex à quelque chose comme null (ou un nombre négatif)?
Y at-il un moyen de contourner ce problème? Je suppose qu'il y a une meilleure façon pour moi de supprimer des éléments, ou j'ai besoin d'une sorte de vérification sur mon gestionnaire SelectionChanged?
Merci. Je pense que j'ai eu un moment d'oubli là-bas! – AndrewC