К чему правильней биндить?

(`yka
Дата: 02.09.2005 11:54:08
Всем привет. Для редактирования строки грида создается окно с нужными контролами. К чему биндить контролы в окне? К DataRowView или DataRow?
Сразу опережу предложения о DataRowView - попробуйте такую механизьму после сортировки грида встроенными в последний средствами (клацнув по заголовку столбца).


-----
Иногда решительный шаг вперед - результат хорошего пинка сзади
(`yka
Дата: 02.09.2005 12:08:52
А DataRow не является dataSourse'ом.. блин. Забодался уже с DataRowView. Кто как побеждает проблему (речь о сортировке в гриде)?

-----
Иногда решительный шаг вперед - результат хорошего пинка сзади
Sa
Дата: 02.09.2005 13:31:23


А DataRow не является dataSourse'ом.. блин. Забодался уже с DataRowView. Кто как
побеждает проблему (речь о сортировке в гриде)?

правильно DataRow не подходит по определению.
Опишите подробнее в чем заключается проблема при использовании DataRowView.

uid = Sa

Posted via ActualForum NNTP Server 1.3

(`yka
Дата: 05.09.2005 12:42:56
Грид имеет встроенные средства сортировки содержимого, и не хочется лишать пользователей этой возможности.
Проведите эксперимент:
изобразите простенькое окошко с гридом;
в грид вытяните выборку, например с фамилиями;
заделайте окошко редактирования для строки выборки;
сортируем грид щелчком мышки по заголовку;
вставляем новую запись, биндим контролы окна редактирования к DataRowView текущей вставленной строки и отображаем окно.
Вот тут первая проблема - где окажется вставленная запись? В конце? В начале? А это от сортировки зависит. В любом случае, новая строка убежит из текущего DataRowView. А если в окне редактирования вписать значение (фамилию) и тут же сделать пост, то хренова строка опять убежит туда, где ей положено быть по сортировке! А содержимое окна редактирования отобразит соседнюю строчку.. Короче, везде циклами шаманить приходится и отыскивать то, что убежало.. Но это ведь маразм!



Иногда решительный шаг вперед - результат хорошего пинка сзади
Sa
Дата: 05.09.2005 13:22:34


....
Проведите эксперимент
....

Такой http://www.sql.ru/forum/actualthread.aspx?tid=203957

uid = Sa

Posted via ActualForum NNTP Server 1.3

(`yka
Дата: 05.09.2005 15:27:05
У меня принцип бинда абсолютно такой же, как в примере... Проблемы были однозначно, почему - не очень помню. Суть такая. В окне редактирования иногда происходит пост в БД. При этом вызывается процедура, которая возвращает некоторые поля измененными (типа, автозаполнение). Почему-то (обнаружено эмпирическим путем) перед постом делаю:
rowView.EndEdit();
BindingContext[rowView].EndCurrentEdit();
По-моему, rowView.EndEdit() не гарантированно сразу закидывал данные в DataTable, и нужные данные постились через раз. А EndCurrentEdit() стопудово делал "Flush()". Так вот именно после выполнения EndCurrentEdit() rowView смотрел уже на совершенно другую DataRow. Я запоминал DataRow сначала, и после EndCurrentEdit приходится его искать, брать его DataRowView и делать перебинд контролов в окне редактирования. Если чего напутал - поправьте.
И, в общем, эта же самая заподляна всплывает то и дело в различных местах. Может быть кто-то может рассказать, как это живет и должно выглядеть при таком раскладе.
Возможно, стоит обратить внимание на изменение данных процедурой..

спасибо



Иногда решительный шаг вперед - результат хорошего пинка сзади