Wpf ListBox仅从ItemSource获取8项

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"

我正在Windows phone上开发应用程序。 在视图中,我有带列表框的网格:

<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"