Wpf ListBox仅从ItemSource获取8项
我正在Windows phone上开发应用程序。 在视图中,我有带列表框的网格:Wpf ListBox仅从ItemSource获取8项,wpf,windows-phone-7,windows-phone,Wpf,Windows Phone 7,Windows Phone,我正在Windows phone上开发应用程序。 在视图中,我有带列表框的网格: <Grid x:Name="ContentGrid" Grid.Row="1"> <ListBox x:Name="TestListbox" ItemsSource="{Binding History}" Margin="24,0"
<Grid x:Name="ContentGrid"
Grid.Row="1">
<ListBox x:Name="TestListbox"
ItemsSource="{Binding History}"
Margin="24,0"
SelectionChanged="GoToSelection"
ItemTemplate="{StaticResource HistoryDataTemplate}"
>
</ListBox>
</Grid>
当我有1-8个项目时,所有项目都正常工作,但是对于>8个项目,构造函数只调用了8次。如果表单上只有8个项目可见,那么不会为屏幕外项目调用构造函数,因为列表正在虚拟化它们 您可以使用属性更改此行为
<ListBox x:Name="TestListbox" VirtualizingStackPanel.IsVirtualizing="False"
如果表单上只有8个可见项,则不会为屏幕外项调用构造函数,因为列表正在虚拟化它们
您可以使用属性更改此行为
<ListBox x:Name="TestListbox" VirtualizingStackPanel.IsVirtualizing="False"
我添加了ListBox.ItemsPanel,它很有帮助。
更多信息:
我添加了ListBox.ItemsPanel,这很有帮助。
更多信息:
如果屏幕上只有8个项目可见,则可能是在虚拟化它们,只有在您将新项目滚动到屏幕上时,才会调用构造函数。是。你是对的。我是否可以更改此行为并一次调用所有项目的ctor?您需要禁用虚拟化。如果屏幕上只有8个项目可见,则可能是在虚拟化这些项目,在您将新项目滚动到显示屏上时,构造函数将仅在这之后被调用。是。你是对的。我是否可以更改此行为并一次性调用所有项目的ctor?您需要禁用虚拟化。我已将我的视图更改为:我已将我的视图更改为:
<ListBox x:Name="TestListbox" VirtualizingStackPanel.IsVirtualizing="False"