|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.08.2015, 23:52 | #1 |
Пользователь
Регистрация: 11.12.2014
Сообщений: 66
|
Обновление после вставки в DataGridView с другой формы
Имею две формы. На первой "MainForm" расположил TabControl в каждой вкладке TabControl перетащил из DataSources по таблице DataGridView.
Вторую форму "BucketForm" создаю по второму Ленискому завету Код:
Код:
Код:
Последний раз редактировалось Таксист; 06.08.2015 в 23:57. |
07.08.2015, 00:27 | #2 |
Старожил
Регистрация: 03.01.2014
Сообщений: 2,870
|
Напрямую через не визуальные классы не пробовали?
|
07.08.2015, 06:12 | #3 |
Форумчанин
Регистрация: 27.01.2014
Сообщений: 115
|
эх были бы вы на WPF, было бы всё проще.
Но гугл говорит о следующем: У ТС данные из БД загружаются только при открытии формы дело в том, что в базу у тебя данные попадают напрямую, а не через источник. В твоём случае есть 2 варианта решения проблемы: 1) Сразу после добавления производить повторную загрузку данных 2) Работать с источником данных, а все сохранения проводить не прямым запросом, а адаптером (только предварительно настроить запросы обновления) |
07.08.2015, 11:29 | #4 |
Пользователь
Регистрация: 11.12.2014
Сообщений: 66
|
|
07.08.2015, 12:02 | #5 |
Пользователь
Регистрация: 11.12.2014
Сообщений: 66
|
|
07.08.2015, 12:19 | #6 |
Форумчанин
Регистрация: 27.01.2014
Сообщений: 115
|
Потому, что взаимосвязь между данными и формой их редактирования прокидывается очень просто.
Есть некоторый класс, в котором хранятся данные, чтобы датагрид увидел изменения, в этом классе реализуется интерфейс INotifyPropertyChanged Код:
Затем, создается обзорная коллекция, возвращающая соответствующие объекты коллекции: Код:
На форме вы выкидываете датапровайдер: Код:
как вы могли заметить, GetCategories - статический, соответственно при неинициализированной переменной _categories будет ошибка. Переменная инициализируется при создании экземпляра класса, а вот данные можно загружать в любой момент, после инициализации ошибок при отсутствии данных не будет - будет возвращена пустая коллекция. Как итог код выше гарантирует в случае инициализации класса Data и наличия объектов в хранилище, присутствие этих объектов в ObjectDataProvider на форме или в контроле. Остается привязать их: Код:
Если, вдруг, мне нужно принудительно обновить данные, я обращаюсь к ObjectDataProvider Код:
Кода много, но этот код гарантирует то, что данные изменяемые в контроле будут протянуты в объектную модель и данные добавленные в объектную модель попадут в контрол. Т.е. я нигде не добавляю руками ничего в коллекцию Items контрола. Но всё, что будет изменено в контроле будет изменено и в данных. |
07.08.2015, 13:24 | #7 |
Пользователь
Регистрация: 11.12.2014
Сообщений: 66
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обновление DataGridView | Fresh_MaN | Windows Forms | 4 | 04.04.2014 14:03 |
Нужно ли обновление формы после изменении ее размера? | dim3740 | C# (си шарп) | 11 | 18.03.2014 20:32 |
Обновление поля формы после создания новой записи создания | romanln2012 | Microsoft Office Access | 2 | 09.08.2012 14:12 |
обновление формы после выполнения скрипта | Tanzor69 | PHP | 2 | 05.02.2012 00:22 |
Обновление данных подчиненной формы из другой подчиненной формы | smoky | Microsoft Office Access | 2 | 15.08.2009 15:28 |