Référence à un élément défini dans un ItemsPanelTemplate
Bonjour,
je souhaite utiliser une ListBox dont le ItemsPanel est un Grid :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| <ListBox Name="ListBox1">
<ListBox.Resources>
<Style TargetType="ListBox">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<Grid Name="ItemsGrid"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
</ListBox> |
Mon problème est que j'ai besoin d'une référence à l'élément ItemsGrid dans mon code Behind.
J'ai pensé récupérer cette référence en utilisant son événement Loaded :
Code:
1 2 3
| <ItemsPanelTemplate>
<Grid Name="ItemsGrid" Loaded="ItemsGrid_Loaded"/>
</ItemsPanelTemplate> |
Cela fonctionne, mais je pense qu'il doit y avoir plus propre. Par exemple instancier le Grid en tant que StaticRessource et ensuite utiliser cette ressource pour définir le contenu de <ItemsPanelTemplate> :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <ListBox Name="ListBox1">
<ListBox.Resources>
<Grid x:Key="itemsGrid" Name="ItemsGrid"/>
<Style TargetType="ListBox">
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<!-- ICI référence à x:Key="itemsGrid"-->
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
</ListBox> |
Mais je ne sais pas si c'est possible et si oui quelle est la syntaxe.