ListBox data virtualization is not taking effect

前端 未结 2 829
北恋
北恋 2020-12-10 19:01

I had 1000 items from xml and loaded them in a List object. List is databound to ListBox which is horizontally oriented so user can flip through items left to right or right

相关标签:
2条回答
  • 2020-12-10 19:50

    Here is the XAML that is causing UI Virtualization to finally kick in.

            <ListBox x:Name="horizontalListBox"   Height="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto" >
    
                    <ListBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <VirtualizingStackPanel Orientation="Horizontal">
    
                            </VirtualizingStackPanel>
                        </ItemsPanelTemplate>
                    </ListBox.ItemsPanel>
                    <ListBox.ItemTemplate>
                        <DataTemplate>
    
                                <StackPanel>
                                    <TextBlock Width="430" Text="{Binding Word}"  TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" TextAlignment="Center" />
    
                                    <Image Height="290" HorizontalAlignment="Center" Name="image1" Stretch="Fill"  Width="430" Source="{Binding ImageFile}" Margin="10,50,10,0" />
                                   </StackPanel>
    
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                    <ListBox.Background>
                        <SolidColorBrush />
                    </ListBox.Background>
                </ListBox>
    
    0 讨论(0)
  • 2020-12-10 20:06

    at the following article it is explained that wrapping a virtualizing UI control in a ScrollViewer will give it infinite space, effectively disabling UI virtualization

    http://blogs.msdn.com/b/mcsuksoldev/archive/2010/04/13/performance-characteristics-of-the-silverlight-datagrid.aspx

    0 讨论(0)
提交回复
热议问题