这是我的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
?