首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListBox中的WPF性能问题

ListBox中的WPF性能问题
EN

Stack Overflow用户
提问于 2018-07-30 16:39:58
回答 1查看 57关注 0票数 0

大家好,谁能告诉我,我在下面的代码中犯了什么错误,

代码语言:javascript
复制
<ListView x:Name="ServiceListView" 
                                  Loaded="ServiceListView_Loaded" 
                                  ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                                  VirtualizingPanel.IsVirtualizing="True"
                                  GridViewColumnHeader.Click="ServiceListSort"
                                  ScrollViewer.IsDeferredScrollingEnabled="True"
                                  VirtualizingStackPanel.VirtualizationMode="Recycling">
                                <ListView.View>

                                    <GridView>
                                        <GridViewColumn  Width="50">
                                            <GridViewColumn.CellTemplate>
                                                <DataTemplate>
                                                <RadioButton IsChecked="{Binding Status}" x:Name="StartService" Checked="StartService_Checked" GroupName="{Binding ServiceName}" Style="{DynamicResource StartServiceStyle}"/>
                                            </DataTemplate>
                                            </GridViewColumn.CellTemplate>
                                        </GridViewColumn>
                                        <GridViewColumn  Width="50" >
                                            <GridViewColumn.CellTemplate>
                                                <DataTemplate>
                                                    <DataTemplate.Resources>
                                                        <local:InvertBooleanConverter x:Key="InvertBooleanConverter" />
                                                    </DataTemplate.Resources>
                                                    <RadioButton IsChecked="{Binding Status, Converter={StaticResource InvertBooleanConverter}}" Checked="StopService_Checked"  x:Name="StopService"  GroupName="{Binding ServiceName}" Style="{DynamicResource StopServiceStyle}" />
                                                </DataTemplate>
                                            </GridViewColumn.CellTemplate>
                                        </GridViewColumn>
                                        <GridViewColumn Width="120" DisplayMemberBinding="{Binding ReccomendedStatus}">
                                            <GridViewColumn.Header>
                                                <GridViewColumnHeader Content="Recommendation"/>
                                            </GridViewColumn.Header>
                                        </GridViewColumn>
                                        <GridViewColumn Width="750" DisplayMemberBinding="{Binding ServiceName}">
                                            <GridViewColumn.Header>
                                                <GridViewColumnHeader Content="Description"/>
                                            </GridViewColumn.Header>
                                        </GridViewColumn>
                                    </GridView>
                                </ListView.View>
                            </ListView>

目前它有20-40个项目,其中只有7个是可见的,它需要大约5-7秒,删除这两个单选按钮的事件时间减少到2-4秒

代码语言:javascript
复制
private void ServiceListView_Loaded(object sender, RoutedEventArgs e)
    {
        ServiceListView.ItemsSource = DATA_CONTROLS.ServiceData.Values;
    }

public static Dictionary<int, DataObject> ServiceData = new Dictionary<int, DataObject>();

为什么在msdn中显示需要这么长时间我看到显示1000个项目只需要1.6秒,为什么这个包含20-40个项目的方法需要5-7秒?我真的需要知道是什么导致了这样的性能问题。谢谢。

发现了一个问题:当我设置:ServiceListView.ItemsSource = DATA_CONTROLS.ServiceData.Values;时,它会自动触发单选按钮事件,这会导致性能下降,而且使用IsAsynch也提高了性能。

EN

回答 1

Stack Overflow用户

发布于 2018-07-30 17:06:52

在您的ListView中添加'IsAsync=True‘,以提高性能

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51590031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档