2016-10-06 5 views
0

ListBox + WrapPanel을 사용하여 ListBox ItemsPanelTemplate 내의 WPF에 정보를 표시 할 때 성능이 매우 떨어집니다.ListBox 및 WrapPanel 성능 저하

ListBox에서 WrapPanel을 제거하면 정보에 약 5 초이 표시되어 WrapPanel에 완전히 표시되고 약 1.10 분이 소요됩니다.

성능 향상 방법에 대한 정보는 무엇입니까?

구성 : 내 DataTemplate은 App.xaml에 있으며 1 개의 테두리, Grid, 20 개의 TextBlocks를 6 개의 다른 VirtualizingStackPanels에 래핑합니다.

목록 상자 :

<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

[this] (http://stackoverflow.com/q/9946811/1997232)를 참조하십시오. – Sinatr

답변

0

WrapPanel은 가상화를 사용하지 않으므로 가상화가 활성화 된 다른 패널을 사용하는 경우 UI에 표시되는 요소 만 생성됩니다.

+0

내 DataTemplate 안에 VirtualizingStackPanels를 사용하고 있습니다 (속도는 WrapPanel에서 사용할 때 속도가 느림). 그래서 동일한 Wrapping 기능을 제공하는 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 .... 더 이상 아이디어 제안? –