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


Автор: Glen 14.4.2015, 11:20
У меня есть WinForms приложенеи с гридом DataGridViewDataGridView. Он привязан к BindingSource по примерно такой схеме:

Код

        interface IObj
        {
            int Code { get; set; }
        }


.....    
Код

BindingList<IObj> list = <мне приходит этот список извне>;
BindingSource bs = new BindingSource(list, "Code");
myGrid.DataSource = bs;




И вот от меня захотели чтобы я этот унаследованный код доработал - чтобы в myGrid этот столбец стал сортируемым. И чтобы (главное) сортировали его не по этому "int Code", а по строковому значению (которое я могу получить определённым путём, имея "int Code").

Причём (продукт уже написан) я не имею возможности расширить этот IObj, добавив туда новое свойство, по которому стану сортировать.

Я знаю про то что есть DataGridViewColumnSortMode.Programmatic; что я могу перехватить событие ColumnHeaderMouseClick у Grid-а и там обеспечить сортировку. Если бы я мог расшрить интерфейс IObj новым полем - всё было бы сделано; в DataGridView есть свойство Sort где бы я указал имя этого IObj-свойства.

Но - как я сказал - трогать интерфейс IObj я не могу.

Можно ли как-то решить эту задачу? Есть ли способ "всунуть" мою custom-сортировку в существующую схему?

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