2016-10-06 63 views
0

当我使用ListBox + WrapPanel在ListBox ItemsPanelTemplate中的WPF中显示信息时,性能结果非常差。ListBox和WrapPanel性能下降

如果我从列表框中删除WrapPanel信息大约需要5秒用WrapPanel完全显示它需要约1.10分钟。

关于如何提高性能的任何提示?

配置为: 我的DataTemplate位于App.xaml中,并使用1个Border,Grid和20个TextBlocks封装在6个不同的VirtualizingStackPanel内。

列表框:

<ListBox Name="myListBox" 
     Margin="4" 
     BorderBrush="DarkSlateGray" BorderThickness="1" 
     ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
     ItemsSource="{Binding propList}" 
     ItemTemplate="{StaticResource myDataTemplate}" > 
    <ListBox.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapPanel /> 
     </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
</ListBox> 

谢谢。

+0

请参阅[本](http://stackoverflow.com/q/9946811/1997232)。 – Sinatr

回答

0

WrapPanel不使用虚拟化,如果您将使用启用了虚拟化的其他面板,则只会创建UI中可见的元素。

+0

在我的DataTemplate里面我使用VirtualizingStackPanels(但在WrapPanel中使用它时速度仍然很慢),所以问题是我应该用什么来替换WrapPanel,它提供了相同的包装功能并具有更好的性能? –

+0

请尝试以下链接:http://www.codeproject.com/Articles/309151/Wrap-Panel-Virtualization http://www.codeproject.com/Articles/75847/Virtualizing-WrapPanel – Rom

+0

特别是这一个执行好一点: “http://virtualwrappanel.codeplex.com/SourceControl/latest#VirtualizingWrapPanel.cs”,但仍然非常slooowww ....任何更多的想法建议? –