0

这是我的itemsControl

    <ItemsControl x:Name="MessagesContainer">
         <ItemsControl.ItemsPanel>
               <ItemsPanelTemplate>
                   <StackPanel Orientation="Vertical"></StackPanel>
               </ItemsPanelTemplate>
         </ItemsControl.ItemsPanel>
         <ItemsControl.ItemTemplate>
               <DataTemplate>
                   <StackPanel>
                        <TextBlock Text="{Binding MessageText}" />
                        <TextBlock Text="{Binding MessageCreatedDate}" />
                    </StackPanel>
               </DataTemplate>
         </ItemsControl.ItemTemplate>
    </ItemsControl>

我想访问前 3 个项目(即前 3 个堆栈面板)来更改它们的背景颜色,所以我ItemContainerGenerator 在下面尝试:

for (int i = 0; i < 3; i++) 
{
   UIElement uiElement = 
    (UIElement)MessagesContainer.ItemContainerGenerator.ContainerFromIndex(i);//<-- always null
}

uiElement总是null有价值而我的 itemsControl 绑定好
有什么想法吗?或任何其他方式来获取特定项目itemsControl

4

0 回答 0