【问题标题】:WPF ComboBox Large Data Source MVVMWPF ComboBox 大数据源 MVVM
【发布时间】:2019-07-23 03:42:54
【问题描述】:

我有这个组合框,它绑定到包含大约 5k 个条目的客户列表

 <ComboBox  ItemsSource="{Binding Customers}"  Margin="0 0 0 18" 
                       DisplayMemberPath="DisplayMember"
                       SelectedValuePath="Id"
                       SelectedValue="{Binding CustomerId,Mode=OneWay}"
                                 >
                <ComboBox.ItemsPanel>
                    <ItemsPanelTemplate>
                        <VirtualizingStackPanel />
                    </ItemsPanelTemplate>
                </ComboBox.ItemsPanel>
  </ComboBox>

我更改为虚拟化,这有助于更快地获取列表,但是当我添加 SelectedValue 以绑定到我的视图模型时,它的加载速度非常慢。

有什么办法可以解决这个问题吗?

问候

【问题讨论】:

  • 您应该使用允许用户搜索或过滤这 5000 到更合理的数字的设计。不要使用组合框作为搜索方法,也不要让用户滚动超过 2 页的数据。
  • 是的,你是对的。我切换到 AutoCompleteText,它做得很好,感谢您的评论

标签: c# wpf mvvm large-data


【解决方案1】:

组合框中的 5000 个条目对系统来说是相当大的负担。

这也是用户的负担。一般来说,一个组合框不应包含超过 10 个(有争议的)项目。

一般来说,我会通过添加一个过滤器来让用户(或系统)进行预选择,该过滤器决定组合框中应显示哪些项目例如,所有以“A”开头的名称,或者,如果该集合仍然太大,所有名称都以“Ande”开头。

【讨论】:

    猜你喜欢
    • 2019-06-23
    • 1970-01-01
    • 2012-06-19
    • 2017-02-20
    • 1970-01-01
    • 2014-03-18
    • 2011-02-06
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多