性能 - ListBox中的Silverlight ContextMenuService

时间:2012-12-19 15:06:15

标签: silverlight xaml wcf-ria-services

使用Silverlight5,RIA Services,DataPager对列表框进行7500row查询。

有一个有趣的问题 - 在翻阅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....

1 个答案:

答案 0 :(得分:0)

问题/解决方法描述为here