我有一个列表框有几个项目,到时候没有滚动条上出现的一切ItemContainerGenerator返回null顺利完美罚款,但一旦谈到滚动然后ItemContainerGenerator返回null。列表框即使列表已物品
我读了一些博客,发现它可能是因为vertualization的StackPanel的。如果我禁用,那么它可能会工作,但在我的情况下,它会使列表框太重,效率不高。
这里是列表框代码:
<ListBox x:Name="EventListBox"
DockPanel.Dock="Top"
Margin="5,5,5,5"
FocusVisualStyle="{x:Null}"
ItemsSource="{Binding EventModelViewCollectionView}"
Style="{StaticResource DefaultListBoxStyle}"
ItemTemplate="{StaticResource EventTemplate}"
SelectedItem="{Binding EventModelViewCollection.SelectedItem}"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.CanContentScroll="True"
ScrollViewer.IsDeferredScrollingEnabled="False"
ScrollViewer.ScrollChanged="EventScrollViewer_ScrollChanged"
IsSynchronizedWithCurrentItem="True"
Loaded="ListBox_Unloaded">
返回null。
这里firstContainer应该是第一个列表框元素。我验证了itemsControl是正确的,并且当firstContainer为null时它有项目。
DependencyObject firstContainer = itemsControl.ItemContainerGenerator.ContainerFromIndex(0);
一个相当多注意到的事情: 我看到这儿有8个列表框项的ItemsControl。 ItemContainerGenerator状态是* 集装箱生成*
不知道为什么它没有返回ItemsContainer 思考?
我已经通过以下链接:http://drwpf.com/blog/2008/07/20/itemscontrol-g-is-for-generator/ – Rohit 2011-04-20 11:45:21