|
|
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
1) При удалении строки хотел бы задавать вопрос пользователю, а потом уже удалять строку. Как это сделать? 2) При добавлении строки - вызываю форму для редактирования. Если пользователь не захотел сохранять новую строку что дель с вновь добавленным элементом - неужели удалять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2010, 22:55 |
|
||
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
Да и еще вопрос на эту же тему. Если я редактирую данные, а затем отменяю изменения, то как вернуться к первоисточникам? Приведенный ниже код не работает. Код: plaintext 1. 2. 3. Простите за вопросы. Может быть они уже для кого-то не сложные. Но я пока перебираюсь с Delphi на C# и над такими проблемами иногда сидишь и думаешь - то ли писать кучу кода, о ли есть уже встроенный механизм, а ты о нем просто не знаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2010, 23:26 |
|
||
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
Да еще важный факт Данные я в источник получаю через DataContextProvider, а именно Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2010, 00:36 |
|
||
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
vinvin, Атключи кнопка по дефольту, пиши обработчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2010, 11:34 |
|
||
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
Дело оказалось не таким простым. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. В этом коде плохо одно - обращение к internal static readonly object EventClick Хотелось бы услышать коментарии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.01.2010, 16:14 |
|
||
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. @ID - это идентификатор текущей удаляемой записи. Не нужно никаких делегатов. Или я чего-то не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 08:55 |
|
||
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
автор2) При добавлении строки - вызываю форму для редактирования. Если пользователь не захотел сохранять новую строку что дель с вновь добавленным элементом - неужели удалять? Оптимальный вариант: 1. Вызываете форму Добавления нового элемента 2. Нажимаете кнопку сохранить 3. Запись сохраняется в БД 4. Закрываете форму. При нажатии кнопки отмены ничего не происходит, просто закрываем форму. У вас видимо сделано так: 1. Добавляете новую запись в БД 2. Открываете форму для редактирования 3.1. Нажимаете кнопку сохранить [Запись апдейтица] 3.2. Нажимаете кнопку отмена [Запись удаляется из БД] 4. Закрываете форму ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 09:01 |
|
||
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
Дело в том, что я работаю с сервисами данных и с EF. Грид и BindingNavigator привязаны к источнику данных - BindingSource, у которого DataSource типа ObjectQuery. При загрузке формы я создаю контекст данных и присваюваю Код: plaintext При нажатии на кнопку (+) в навигаторе происходит два события - добавление записи в источник данных (встроенное действие) и мое действие - вызов формы. Во время вызова формы элементы формы привязываются к элементам управления через переданный в конструкторе BindingSource.Current как показано ниже: Код: plaintext Однако, при отказе от сохранения приходиться явно удалять: Код: plaintext Таким образом я выигрываю в следующем: 1. Имею общий код для использования - т.е. могу сделать общий класс для использования добавления. 2. Использую класс BindingNavigator (ничего в нем не дописывая) Не нужно никаких делегатов. Или я чего-то не понял? При удалении я так же использую готовый класс - BindingNavigator. Т.е. создаю универсальный класс для работы с данными. Таким образом я здесь пытаюсь не просто сделать какое-то действие, а сделать его универсальным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2010, 21:11 |
|
||
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
А теперь стало ясно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Право конечно ваше, но получите кучу проблем о которых вы уже знаете (поддержка в новых фремворках и др.) Вобщем тут как раз и не нужно никакой универсальности, разве сложно указать 1 переменную (myBindingSource)? При редактировании записи опять же, лучше использовать метод, в который параметром передаем текущую запись, которую мы явно прописываем. Или сразу туда передаем this.myBindingSource далее используем по своему усмотрению, отображаем на форме и все такое. Универсальность можно достичь за счет того что поля на форме редактирования будут генериться автоматически, и вам не придется создавать отдельные формы для редактирования различных данных. Вот это я понимаю универсальность, тут работы как раз по созданию форм редактирования полно как правило. Единственный минус это явно передавать текущий bindingSource, но это думаю не проблема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2010, 10:03 |
|
||
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
Этот код будет работать неправильно! Код: plaintext 1. 2. 3. 4. 5. 6. Дело в том, что к bindingNavigatorDeleteItem.Click уже привязано действие по удалению текущей записи. Т.е. сначала будет удалена строка (выполниться встроенный код), ну а потом выполниться наше привязанное действие! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2010, 14:25 |
|
||
|
Как правильно использовать BindingNavigator
|
|||
|---|---|---|---|
|
#18+
vinvinЭтот код будет работать неправильно! Код: plaintext 1. 2. 3. 4. 5. 6. Дело в том, что к bindingNavigatorDeleteItem.Click уже привязано действие по удалению текущей записи. Т.е. сначала будет удалена строка (выполниться встроенный код), ну а потом выполниться наше привязанное действие! Тогда создать свою кнопку у которой этого побочного события нет, кнопка содается в 2 клика ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2010, 17:22 |
|
||
|
|

start [/forum/topic.php?fid=17&msg=36406726&tid=1351514]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 260ms |
| total: | 543ms |

| 0 / 0 |
