C # Как ускорить поле со списком - PullRequest
1 голос
/ 05 апреля 2011

Как ускорить скорость заполнения поля со списком?С академической точки зрения, представьте, что поле со списком содержит 1 миллиард записей.Как бы мы максимизировали скорость работы программы.Какие еще методы можно использовать вместо поля со списком для отображения данных?

Вот подробности для моего конкретного вопроса:
Я использую обработчик событий WPF

<ComboBox Height="24" SelectedIndex="0" HorizontalAlignment="Left" 
 Margin="146,27,0,0" Name="emoployeeUserNameComboBox" VerticalAlignment="Top"
 Width="198" Loaded="emoployeeUserNameComboBox_Loaded"/>

private void emoployeeUserNameComboBox_Loaded(object sender, RoutedEventArgs e) {
    using (ToolboxDataContext dbToolbox = new ToolboxDataContext()) {
        var query = (from x in dbToolbox.DropDownEmployeesUserNames()
                     select x.UserName).ToList();
        this.emoployeeUserNameComboBox.ItemsSource = query;
    }

СохраненоПроцедура выше DropDownEmployeesUserNames определяется как

SELECT [UserName],Emp_Number
FROM AdminUser
ORDER BY UserName

Возвращает 14 257 строк

1 Ответ

3 голосов
/ 05 апреля 2011

Комбинированные поля должны содержать ограниченный набор параметров. Если вы хотите разрешить кому-либо выбирать из 1 миллиарда вариантов, вам лучше использовать автозаполнение в сочетании с кнопкой, которая открывает всплывающее окно, которое позволяет эффективно искать данные, необходимые для выбора элемента. Я склонен создавать всплывающие окна со следующими функциями:

  1. Фильтрующий механизм
  2. Альфа-ограничитель
  3. Paging
  4. Недавно выбранные / популярные значения, когда имеется тенденция к определенному совпадению в том, как пользователь выбирает значения
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...