Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка BindingList 
:(
    Опции темы
HAL707
Дата 9.9.2009, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 6.9.2007

Репутация: 1
Всего: 4



Привет.
Сразу к делу.
Есть список BindingList<>. В нем лежат классы MyClass.
Есть ListBox у которого DataSorce'ом является этот BindingList

Вопрос: как отсортировать данные в ListBox (вернее в BindingList)?
ListBox.IsSorted не работает, говорит нельзя изменить коллекцию, если задано свойство DataSource.

Сразу говорю, пытался наследоваться от BindingList и переопределить методы сортировки. Не помогло.
До этих методов выполнение даже не доходит...
PM MAIL   Вверх
Heinzz
Дата 9.9.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Сортировать нужно не ListBox, а BindingList


--------------------
user posted image
PM MAIL   Вверх
Heinzz
Дата 9.9.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Пример

Код

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            BindingList<MyClass> bList= new BindingList<MyClass>();
            
            bList.Add(new MyClass("Ivan", 23));
            bList.Add(new MyClass("Igor", 63));
            bList.Add(new MyClass("Anna", 13));
            bList.Add(new MyClass("Mike", 41));
            this.listBox1.DataSource = bList;

            SortBindingList(bList);
        }


        //реализация сортировки для BindingList
        private void SortBindingList(BindingList<MyClass> bList)
        {
            BindingList<MyClass> bList2 = new BindingList<MyClass>();
            IEnumerable<MyClass> e = bList.OrderBy(man => man.name);

            bList2.Clear();
            foreach (MyClass my in e)
            {
                bList2.Add(my);
                bList.Remove(my);
            }

            foreach (MyClass my in bList2)
            {
                bList.Add(my);
            }
        }
    }

    //Пример класса для листбокса
    class MyClass
    {
        public string name;
        public int age;
        public MyClass(string name, int age)
        {
            this.age = age;
            this.name = name;
        }
        public override string ToString()
        {
            return this.name + "\t" + this.age;
        }
    }


Вроде бы для BindingList сортировка обычная не реализована. 

Это сообщение отредактировал(а) Heinzz - 9.9.2009, 18:34


--------------------
user posted image
PM MAIL   Вверх
HAL707
Дата 10.9.2009, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 109
Регистрация: 6.9.2007

Репутация: 1
Всего: 4



Все, разобрался с проблемой. Спасибо всем.
PM MAIL   Вверх
Heinzz
Дата 10.9.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 381
Регистрация: 12.12.2008
Где: .net

Репутация: 5
Всего: 9



Цитата(HAL707 @  10.9.2009,  10:03 Найти цитируемый пост)
Все, разобрался с проблемой. Спасибо всем. 

Вручную пришлось сортировать?


--------------------
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0612 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.