Si je change la propriété ItemsSource
d'un ListBox
alors qu'un élément est sélectionné, je reçois exception IndexOutOfRange parce SelectedIndex
propriété est définie lorsqu'un élément est sélectionné. Si aucun élément n'est sélectionné dans l'exception ListBox
, cela n'est pas déclenché mais si la propriété SelectedItem
est définie sur null avant de modifier l'ItemsSource
, l'exception se produit toujours si un élément a été sélectionné car la propriété SelectedIndex
a toujours une valeur.Changer la propriété ListBox ItemsSource tout élément est sélectionné dans les résultats IndexOutOfRange Exception
Existe-t-il une solution ou une solution de contournement pour ce problème?
Edit: Voici l'exemple de code, car ce problème ne se produit que si je demande un filtre Contains
dans mon LINQ à l'expression des objets et un élément est sélectionné dans la zone de liste ... MyList est un List<>
d'objets CLR ...
lstMyList.ItemsSource = MyList.Where(i => i.TypeId == 1);
Cela fonctionne très bien. Cette requête LINQ modifiée fonctionne aussi très bien (si aucun élément est sélectionné) mais si un élément est sélectionné je reçois IndexOutOfRangeException
lstMyList.ItemsSource = MyList.Where(i => i.TypeId == 1 && i.DisplayName.Contains(someString));
Si je redirige cette requête LINQ à un var ou une liste de CLR objets de la requête fonctionne bien, mais quand j'essaye d'en faire une ItemsSource de ma ListBox j'obtiens l'exception (même si je fais cette var ou une liste d'objet CLR ItemsSource de ma ListBox à la place).
Pourriez-vous écrire la trace d'exception! – Homam