WPF ComboBox Большой источник данных MVVM - PullRequest
0 голосов
/ 01 марта 2019

У меня есть этот комбинированный список, который привязан к списку клиентов с примерно 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 для привязки к моей модели представлениязагрузка стала очень-очень медленной.

Есть ли способ решить эту проблему?

С уважением

1 Ответ

0 голосов
/ 01 марта 2019

5000 записей в выпадающем списке - это довольно тяжелая ноша для системы.

Это также бремя для пользователя.В общем, комбинированный список не должен содержать более 10 (дискуссионных) предметов.

В общем, я бы заставил пользователя (или систему) сделать предварительный выбор, добавив фильтр, который решает, какие элементы должны отображаться в поле со списком, например, все имена начинаются с "A" или, если это установленовсе еще слишком велик, все имена начинаются с "Ande".

...