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 Свойство для ввода типа и присвоения им собственных значений по умолчанию.

Другие вопросы по тегам