J'ai créé un contrôle personnalisé que j'insérer dans ma fenêtre avec le code suivantpermettant d'ajouter des éléments à une liste XAML
<controls:ListExpander Text="Class Diagrams"></controls:ListExpander>
Le contrôle en question contient plusieurs sous-contrôles, entre autres, une liste. Comment créer la configuration, afin que je puisse spécifier les éléments qui devraient être ajoutés à la liste? Finalement, je suis à la recherche de l'architecture suivante
<controls:ListExpander Text="Class Diagrams">
<SomeItem>data<SomeItem>
<SomeItem>data<SomeItem>
<SomeItem>data<SomeItem>
<SomeItem>data<SomeItem>
</controls:ListExpander>
auquel cas les objets SomeItem devraient être ajoutés à la liste dans le ListExpander:
<ListBox Name="lstItems" Background="LightGray">
<ListBox.Items>
// Items should go here
</ListBox.Items>
</ListBox>
Je suis tout à fait nouveau pour WPF, mais je suppose c'est quelque chose dans le sens de la création d'une collection de dépendances sur ListExpander qui prend l'objet du type SomeItem
?
Modifier: Permettez-moi de clarifier un peu. Je veux simplement pouvoir donner au contrôle quelques arguments qu'il peut traduire en items dans la listbox contenue dans le contrôle.
La liaison entre Items et lstItems ne semble pas fonctionner. Les objets SomeItem sont en fait ajoutés à _items, mais pas à la listbox. –
Peut-être que vous devez définir DataContext dans votre constructeur de contrôles pour la liaison au travail. Quelque chose comme ceci.DataContext = this; Ou utilisez TemplateBinding au lieu de Binding ou utilisez une version plus longue de l'expression Binding spécifiant RelativeSource. De toute façon, le principe est là et vous avez juste besoin de trouver une anomalie manquante dans mon exemple de code. –