J'ai un ListBox avec des objets Foo, et basé sur certains événements, je désactiver/activer les ListBoxItems dans le ListBox. En utilisant la propriété ListBox.Items, je trouve des objets Foo, et d'après ce que j'ai compris, j'ai besoin d'utiliser la fonction suivante pour obtenir le conteneur ListBoxItem pour le Foo. Correct?Comment faire pour obtenir le ListBoxItem pour un élément dans ListBox sur "bind-time"
En fait, j'ai un FilteringListBox de contrôle personnalisé qui héritera ListBox et ajoute une propriété supplémentaire pour elle. Le code ci-dessus est dans le code derrière le contrôle personnalisé et fonctionne très bien lorsque le FilteringListBox est en cours de création. Mon problème cependant est que j'essaye de faire ceci quand une propriété est liée. J'ai une propriété FilteringCollection et un PropertyCallback déclenchés quand ceci est lié. Dans ce rappel, je vais stocker le FilteringCollection, mais je ferai aussi le filtrage initial - en cours d'exécution à travers la collection set et désactiver tout ListBoxItem représentant un Foo qui est dans le FilteringCollection.
C'est là que j'ai des problèmes. Je trouve tous les Foos, donc je vérifie que la ItemsSource est définie, mais en faisant le ItemContainerGenerator.ContainerFromItem je reçois null. C'est comme si les ListBoxItems n'étaient pas encore créés. Ne sont-ils pas? Voici ma liaison:
<custom:FilteringListBox ItemsSource="{Binding AvailableFoos}" FilteringCollection="{Binding AlreadyIncludedFoos}"></custom:FilteringListBox>
Ainsi; soit: Comment puis-je obtenir les ListBoxItems sur "bind-time"? Ou - si je ne peux pas; Y at-il un événement que je peux remplacer qui me dit que la ListBox a fini de créer ListBoxItems? Essayé surInitialisé sans la chance ...