Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Сортировка DataGridView


Автор: Elfet 12.11.2010, 15:42
Всем привет! 
Может мне кто-нибудь подсказать как реализовать сортировку?
Код

            List<Message> list = new List<Message>();
            list.Add(new Message("Hello", "World", true));
            list.Add(new Message("Hello", "You", true));
            list.Add(new Message("I'll be", "Back", false));

            dataGridView.AutoGenerateColumns = false;
            dataGridView.DataSource = list;
            dataGridView.Columns["ColumnId"].DataPropertyName = "Id";
            dataGridView.Columns["ColumnText"].DataPropertyName = "Text";
            dataGridView.Columns["ColumnNew"].DataPropertyName = "New"; 

Код

    class Message
    {
        private string id;
        private string text;
        private bool is_new;
        public string Id 
        {
            get
            {
                return id;
            }
        }
        public string Text
        {
            get
            {
                return text;
            }
            set
            {
                text = value;
            }
        }
        public Bitmap New
        {
            get
            {
                return is_new ? Properties.Resources.New : Properties.Resources.Tick;
            }
        }
        public Message(string id, string text, bool is_new)
        {
            this.id = id;
            this.text = text;
            this.is_new = is_new;
        }
    }

У всех колонок стоит DataGridViewColumnSortMode.Automatic.
Заранее спасибо!  smile 

Автор: Elfet 12.11.2010, 16:56
Не хочу ещё одну тему создавать, но почему в dataGridView получается добавлять элементы только в конструкторе?

Если я в какой-нибудь другой кнопке напишу это:
Код

list.Add(new Message("", "Start", true));

То ничего нового не добавляется в dataGridView. Как и это исправить? smile

C этим разобрался: bindSource.ResetBindings(false);

А вот с сортировкой всё никак не разберусь :(  

Автор: RobinHoodPHD 16.11.2010, 22:10
Гугль в помощь
http://msdn.microsoft.com/en-us/library/ms171608.aspx
http://msdn.microsoft.com/en-us/library/95scxcdy.aspx
Вам придется написать свою функцию сортировки и реализовать в ней логику, которую Вы вкладываете в сортировку

Автор: Elfet 21.11.2010, 19:33
спасибо)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)