2012-12-19 32 views
0

將Silverlight5,RIA Services,DataPager用於7500row查詢到列表框中。性能 - 列表框中的Silverlight ContextMenuService

得到了一個有趣的問題 - 在對500個左右的項目進行分頁後,內存使用量從70MB到250MB,並且性能下降非常可怕。

如果我註釋掉ContextMenuService,它一切正常。

問題:如何在每個listboxitem上實現高性能的右鍵單擊功能?

<ListBox x:Name="AccountItems" SelectionMode="Extended" ItemsSource="{Binding Data, ElementName=AccountsDataSource}" ScrollViewer.HorizontalScrollBarVisibility="Disabled"> 

    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <ListBoxItem> 
       <TextBlock Grid.Column="2" Name="textBlockCaptionFirstName" Text="{Binding FirstName}" HorizontalAlignment="Left" TextAlignment="Center" TextWrapping="Wrap" > 
        <!-- Right click --> 
        <controlsInputToolkit:ContextMenuService.ContextMenu> 
         <controlsInputToolkit:ContextMenu> 
          <controlsInputToolkit:MenuItem Header="Convert account to another User" Click="Person_Click"> 
           <controlsInputToolkit:MenuItem.Icon> 
            <Rectangle Width="16" Height="16" Fill="{StaticResource PersonAccountIcon}"/> 
           </controlsInputToolkit:MenuItem.Icon> 
          </controlsInputToolkit:MenuItem> 
          <controlsInputToolkit:MenuItem Header="Convert account to a System account" Click="ServiceAccount_Click"> 
           <controlsInputToolkit:MenuItem.Icon> 
            <Rectangle Width="16" Height="16" Fill="{StaticResource ServiceAccountIcon}"/> 
           </controlsInputToolkit:MenuItem.Icon> 
          </controlsInputToolkit:MenuItem> 

          <controlsInputToolkit:Separator/> snip.... 

回答

0

問題/解決辦法被描述here