Member 11403304 Ответов: 2

Как исправить ошибку listbox содержит слишком много элементов C#?


У меня есть форма со списком. Я хочу заполнить этот список информацией из таблицы базы данных. В настоящее время я получаю ошибку Список содержит слишком много элементов.
Как мне это исправить?

Что я уже пробовал:

Вот мой код для списка.

// AdditionalStaffEmail Listbox
        public async void PopulateAdditionalStaffEmailListBox()
        {
            List<getrequestorinfomodel> requestors = new List<getrequestorinfomodel>();
            AdditionalStaffEmailListBox.Items.Clear();
            AdditionalStaffEmailUpdateListBox.Items.Clear();

            try
            {
                requestors = await FTACaseReset.Controllers.RequestorInfoController.GetAllRequestorInfoes();
                requestors = requestors.OrderBy(x => x.DisplayName).ToList();
                
                #region Populate AdditionalStaffEmailListBox
                ListBoxItem firstRequestor = new ListBoxItem();
                firstRequestor.Value = 0;
                AdditionalStaffEmailListBox.Items.Add(firstRequestor);

                for (int i = 0; i < requestors.Count; i++)
                {
                    ListBoxItem item = new ListBoxItem();
                    item.Text = requestors[i].DisplayName;
                    item.Value = requestors[i].RequestorInfoID;
                    AdditionalStaffEmailListBox.Items.Add(item);
                }

                if (AdditionalStaffEmailListBox.Items.Count > 0)
                    AdditionalStaffEmailListBox.SelectedIndex = 0;
                #endregion

                #region Populate AdditionalStaffEmailUpdateListBox
                for (int i = 0; i < requestors.Count; i++)
                {
                    ListBoxItem item = new ListBoxItem();
                    item.Text = requestors[i].DisplayName;
                    item.Value = requestors[i].RequestorInfoID;
                    AdditionalStaffEmailUpdateListBox.Items.Add(item);
                }
                #endregion
            }
            catch (Exception ex)
            {
                string errorMsg = string.Format("An error has occured in {0}. \nException:\n{1}", "AdditionalStaffEmailListBox()", ex.Message);
                MessageBox.Show(errorMsg, "Application Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
		
		public class GetRequestorInfoModel
    {
        public int RequestorInfoID { get; set; }
        public Nullable<int> UserID { get; set; }
        public string NameFirst { get; set; }
        public string NameMiddle { get; set; }
        public string NameLast { get; set; }
        public string NameSuffix { get; set; }
        public string DisplayName { get; set; }
        public string Email { get; set; }
        public string Location { get; set; }
    }

ZurdoDev

Ошибка кажется довольно очевидной. Чего вы от нас хотите?

Gerry Schmitz

Вы выяснили, сколько пунктов "слишком много"? (заявителями.граф)

Считаете ли вы, что эта информация может быть полезной для выработки решения?

И у вас есть 2 списка ...

Maciej Los

Это звучит как плохой подход ко мне.

2 Ответов

Рейтинг:
2

OriginalGriff

Простой. Не помещайте так много элементов в один список.

Честно говоря, если вы нажимаете ограничение "слишком много элементов" в любом элементе управления, то ваш пользовательский интерфейс для всех практических целей совершенно бесполезен. Как вы думаете, сколько времени потребуется пользователю, чтобы
1) загружайте это количество элементов каждый раз, когда они открывают ваше приложение;
2) Найдите один предмет, который их интересует, из всех тех, что вы бросили в них?

Не делайте этого - пользователи будут, взгляните и удалите его: я, конечно, хотел бы вернуть свои деньги в течение нескольких минут.


Рейтинг:
12

Patrice T

Цитата:
Как исправить ошибку listbox содержит слишком много элементов C#?

Всего несколько решений:
- Найдите нестандартный список, который может обрабатывать газиллионы элементов, или создайте свой собственный список, который соответствует вашим потребностям. В любом случае, не приходите сказать, что это занимает слишком много времени, чтобы заполнить или что это трудно использовать.
- Переосмыслите свой пользовательский интерфейс, чтобы избежать необходимости в необработанном списке.
Подумайте о пользовательском интерфейсе поиска Youtube, когда вы начинаете печатать, он начинает делать предложения, это очень быстро.