DataGrid найти индекс нужной строки после сортировки
От: Аноним  
Дата: 15.01.04 06:25
Оценка:
есть таблица в DataGrid как-то туда добавляются новые строки (для этого перезагружается таблица из базы) и происходит сортировка
нужно после этого всего сделать снова текущей ту строку которая была до этих операций (ID известен)
Re: DataGrid найти индекс нужной строки после сортировки
От: Ilia Kozin Россия  
Дата: 15.01.04 08:39
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>есть таблица в DataGrid как-то туда добавляются новые строки (для этого перезагружается таблица из базы) и происходит сортировка

А>нужно после этого всего сделать снова текущей ту строку которая была до этих операций (ID известен)

Сам не проверял, то что написано ниже, но думаю поможет:
Посмотри методы ITypedList.GetItemProperties и IBindingList.Find у DataView,
через ITypedList.GetItemProperties получишь колекцию в ней найди по имени поля
в котором содержиться значения ID нужный PropertyDescriptor
и вызови IBindingList.Find передав туда PropertyDescriptor и значение ID

Илья
... << RSDN@Home 1.1.0 stable >>
Re[2]: не понятно DataGrid найти индекс нужной строки
От: sprxm  
Дата: 15.01.04 12:21
Оценка:
IK>Сам не проверял, то что написано ниже, но думаю поможет:
IK>Посмотри методы ITypedList.GetItemProperties и IBindingList.Find у DataView,
IK>через ITypedList.GetItemProperties получишь колекцию в ней найди по имени поля
IK>в котором содержиться значения ID нужный PropertyDescriptor
IK>и вызови IBindingList.Find передав туда PropertyDescriptor и значение ID

что-то я даже не понимаю как вызывать GetItemProperties
напишите пожалуйста пару строк кода
Re[3]: не понятно DataGrid найти индекс нужной строки
От: Ilia Kozin Россия  
Дата: 16.01.04 06:20
Оценка:
Здравствуйте, sprxm, Вы писали:
...
Если грид берет данные из DataView или DataTable (DataView у него берез через св-во DefaultView) то:


PropertyDescriptorCollection oPropCollection    = ((ITypedList)oDataView).GetItemProperties(null);
PropertyDescriptor    oDescriptor            = oPropCollection["ID"];    // где ID имя колонки в которой содержатся значения ID 
int    iPos    = ((IBindingList)oDataView).Find(oDescriptor, 10);    // где 10 - значение ID


Илья
... << RSDN@Home 1.1.2 stable >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.