J'ai un ListBox, et je dois mettre son ControlTemplate à un Virtualisation WrapPanel qui est une classe qui étend VirtualizingPanel, en utilisant un style qui ressemble à ceci:Pourquoi ItemContainerGenerator ne renvoie nulle?
<Style TargetType="{x:Type ListBox}" x:Key="PhotoListBoxStyle">
<Setter Property="Foreground" Value="White" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBox}" >
<s:VirtualizingVerticalWrapPanel>
</s:VirtualizingVerticalWrapPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Maintenant, dans la méthode privée de Virtualisation WrapPanel ci-dessous je tente d'accéder this.ItemContainerGenerator, mais je reçois valeur nulle, toute idée quel est le problème ??
private void RealizeFirstItem()
{
IItemContainerGenerator generator = this.ItemContainerGenerator;
GeneratorPosition pos = generator.GeneratorPositionFromIndex(0);
using (generator.StartAt(pos, GeneratorDirection.Forward))
{
UIElement element = generator.GenerateNext() as UIElement;
generator.PrepareItemContainer(element);
this.AddInternalChild(element);
}
}
"this.ItemContainerGenerator" Que cela signifie Listbox? – Ragunathan
cela se réfère à Virtualiser WrapPanel, le Virtualrap WrapPanel est utilisé dans le ControlTemplate de la ListBox – simo