Я использую BindingNavigator в своем приложении Winforms на С#.
Я хочу, чтобы поля в моей форме были отключены, если в bindingSource нет записей. Для этого я поместил поля на панель и хочу связать включенное свойство панели, используя что-то вроде
this.panel1.DataBindings.Add(new Binding("Enabled", this, "HasRecord", false, DataSourceUpdateMode.OnPropertyChanged));
this.bindingSource1.AddingNew += this.BindingSourceListAddingNew<Person>;
внутри события загрузки формы.
Я реализовал INotifyPropertyChanged в форме и настроил свойство HasRecord, которое вызывается при нажатии кнопки добавления новой
Однако я не могу найти свойство, которое вернет true при нажатии кнопки «Добавить». Вот методы внутри формы.
Мой вопрос: как мне заставить свойство HasRecord работать? Я мог бы добавить логическую переменную для модуля и установить ее внутри BindingSourceAddingNew, но это похоже на хак.
public bool HasRecord { get
{
return this.bindingSource1.Count > 0;
} }
public override void BindingSourceListAddingNew<T>(object sender, AddingNewEventArgs e)
{
base.BindingSourceListAddingNew<T>(sender, e);
this.SendChange("HasRecord");
Debug.Print( this.bindingSource1.SupportsChangeNotification.ToString());
}