Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Каждому свое
530 / 216 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
1

DataBindingNavigator как с ним работать

20.01.2018, 17:32. Показов 518. Ответов 6
Метки нет (Все метки)

Привет всем. Вот у меня есть на форме DataGridView, DataBindingSource, DataBindningNavigator и две кнопки AddRow, DeleteRow, которые установлены в DataBindningNavigator в свойствах AddRowItem и DeleteRowItem.

Объясните мне пожалуйста, почему когда я удаляю строки, нажимая на кнопку DeleteRow, то возникает событие RowValidating объекта DataGridView, именно на последней строке в списке? Что это за бред. Тоесть, если буду удалять первую, строку, вторую, в середине, предпоследнюю - то все нормально, событие RowValidating не возникает. А вот если попробую удалить последнюю строку в списке, то возникает. С чем это связано вообще?

У меня просто есть определенный код на это событие, и мне не нужно чтобы он вообще выполнялся, когда я что-то удаляю. Его нужно выполнять, когда строка проходит валидацию после редактирования, но никак не после удаления!

Еще хотел бы задать такой вопросик. Как заставить DataBindningNavigator при нажатии на AddRow создавать строку, в колонке Id которой, будет установлено Guid.NewGuid()? Тоесть автоматически, чтобы если появлялась новая строка, то Id для нее был установлен. Да да да, я знаю, что это можно сделать на СУБД и все такое. Но как это сделать на стороне клиента? Ручками не очень охото, хочу чтобы автоматически было

Добавлено через 1 час 23 минуты
Неужели никто не знает? Я уже целый день с этим вожусь, не могу сделать...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.01.2018, 17:32
Ответы с готовыми решениями:

DaraGridView - как с ним работать
Вот кусок кода в котором я получаю нужные данные (переменная result), записываю в двумерный массив ...

Where и как с ним работать?
не могу разобраться с расширением Where на майкрофте пишут int numbers = { 0, 30, 20, 15, 90,...

ПакетЗапросов как с ним работать?
имеется пакет запросов, я его выполняю, получаю массив.Как работать с элементами этого массива?...

Прокси как с ним работать?
Кто, что сможет подскажите как использовать в VB прокси. Нужно чтобы ICQ использовался через...

6
8309 / 4534 / 1770
Регистрация: 11.02.2013
Сообщений: 9,607
20.01.2018, 17:36 2
Цитата Сообщение от Bretbas Посмотреть сообщение
если попробую удалить последнюю строку в списке, то возникает
Последняя с данными или последняя пустая?
Цитата Сообщение от Bretbas Посмотреть сообщение
Как заставить DataBindningNavigator при нажатии на AddRow создавать строку, в колонке Id которой, будет установлено Guid.NewGuid()
BindingNavigator тут вообще не при чём. Это можно обработать в событии AddingNew у BindingSource
0
Каждому свое
530 / 216 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
20.01.2018, 17:43  [ТС] 3
ViterAlex,
Цитата Сообщение от ViterAlex Посмотреть сообщение
Последняя с данными или последняя пустая?
Без разницы. И так, и так кидает событиеRowValidating при удалении конкретно последней строки в DGV

Цитата Сообщение от ViterAlex Посмотреть сообщение
BindingNavigator тут вообще не при чём. Это можно обработать в событии AddingNew у BindingSource
Ну получается мне придется создавать в AddingNew объект типа сущности и задавать ему Id? Это можно делать в View?
0
8309 / 4534 / 1770
Регистрация: 11.02.2013
Сообщений: 9,607
21.01.2018, 04:54 4
Цитата Сообщение от Bretbas Посмотреть сообщение
Это можно делать в View?
У тебя MVC?
0
Каждому свое
530 / 216 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
22.01.2018, 10:02  [ТС] 5
ViterAlex, Нет, MVP

Добавлено через 48 минут
ViterAlex, вообщем у меня MVP, где Presenter подписывается на созданные мною события в View. Ты мне лучше скажи, можно ли во View проверки всякие осуществлять на тему: заполнен контрол данными или нет, введены цифры или нет и тому подобные? Тоесть по идее к бизнес-логики эти проверки отношения не имеют никакого.
0
8309 / 4534 / 1770
Регистрация: 11.02.2013
Сообщений: 9,607
22.01.2018, 11:39 6
Цитата Сообщение от Bretbas Посмотреть сообщение
можно ли во View проверки всякие осуществлять на тему: заполнен контрол данными или нет, введены цифры или нет и тому подобные?
Конечно, можно. Но тут ещё нужно разграничивать проверку данных и их валидацию. Валидацию рекомендуют делать в BL. К сожалению, подробнее подсказать не могу: опыта маловато.
0
Каждому свое
530 / 216 / 81
Регистрация: 05.08.2013
Сообщений: 1,614
22.01.2018, 20:47  [ТС] 7
ViterAlex, просто дело в том, что валидацию UI я могу-то осуществить в обработчиках событий RowValidating или CellValidating и сделать e.Cancel=true, чтобы запретить пользователю куда-либо переходить, пока он не исправит данные. Но если после пройденной валидации UI передавать данные уже в Presenter, или ViewModel, или еще как хотите назвать, то там я буду делать валидацию уже бизнес-логики, но уже если эта валидация не пройдет, то мне не получится поставить запрет пользователю переходить куда-либо, пока он не исправит данные.

Вот моя проблема
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.01.2018, 20:47

SVN как с ним работать
Создал пользователя htpasswd /etc/apache2/dav_svn.passwd user_name Создал репозиторий svnadmin...

Github как с ним работать? [C#]
Я не нашел форум где это можно спросить. Создал я что то на github выдалась мне страница ...

TIWTreeView и как с ним работать?
Здраствуйте. может кто подскажет литературу или ссылки как работать с компонентой TIWTreeViev для...

CTabCtrl - как с ним работать?
Попытался разобраться с этим компонентом, да застрял. Задачка: разместить на разных вкладках...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.