Как установить текущую запись BindingSource в значение null?
у меня есть форма захвата для заказа работ, и у нее есть CustomerBindingSource
и WorksOrderBindingSource
управление. Большинство полей редактирования привязаны к WorksOrderBindingSource
, С ComboBox, список которого привязан к CustomerBindingSource
, и SelectedValue
связан с
2 ответов
Я нашел эту тему именно с моей проблемой, но без удовлетворительного ответа. Я знаю, что это старая тема, но alah..
Я закончил с рабочим решением: я добавил событие [PositionChanged] в свой bindingsource (будет вашим CustomerBindingSource).
private void CustomerBindingSource_PositionChanged(object sender, EventArgs e)
{
if(<yourCombobox>.SelectedIndex==-1)
{
CustomerBindingSource.SuspendBinding();
}
else
{
CustomerBindingSource.ResumeBinding();
}
}
то, что я использую для "очистки" BindingSource, - это просто установить его источник данных следующим образом:
CustomerBindingSource.DataSource = typeof (клиент);
надеюсь, что это помогает.
изменить:
для ясности, когда вы устанавливаете BindingSource.Свойство dataSource, как описано, ничто не мешает вам назначить исходных данных на более позднем этапе:
//Retrieve customers from database
List<Customer> Customers = WhatEverCallToDB();
CustomerBindingSource.DataSource = Customers;
...
//Later we need to blank the Customer fields on the Windows Form
CustomerBindingSource.DataSource = typeof(Customer);
...
//Then again at a later point we can restore the BindingSource:
CustomerBindingSource.DataSource = Customers;
...