BindingNavigator Копировать в AddNewItem
При добавлении нового элемента через BindingNavigator
Как я могу заполнить несколько полей нового элемента значениями из ранее выбранного элемента?
Примечание: вкл BindingNavigatorAddNewItem.Click
, BindingNavigator
уже загружен новый элемент и элементы управления очищены до значений по умолчанию.
1 ответ
BindingNavigator
должен быть связан с источником данных. Для того, чтобы поделиться так же, как DataGridView
например, он должен использовать BindingSource
, Таким образом, добавленный элемент фактически добавляется в ваш базовый BindingSource.DataSource
,
Есть два способа решить вашу проблему.
Как только оба DataGridView
а также BindingNavigator
связаны, даже если вы нажмете на BindingNavigator.AddNewItem
кнопка, вызов BindingSource.AddNew()
метод сделан и положение CurrencyManager
обновляет изменения для позиции только что добавленного элемента, так же как и BindingSource.Current
свойство, возвращая экземпляр вашего недавно добавленного объекта, или же BindingSource.CurrencyManager.Current
делает то же самое.
1 - Используйте
BindingSource.Current
Типа бросить BindingSource.Current
объект, назначьте свои значения, и все готово!
2 - Подписаться на
BindingSource.AddingNew
событие
Таким образом, вы можете получить доступ к своему экземпляру через BindingSource.AddignNewEventArgs
и использовать AddignNewEventArgs.NewObject
Свойство для ввода типа и присвоения им собственных значений по умолчанию.