Как я могу реализовать форму с простыми компонентами (текстовые поля, поля комбинированного списка) связанный со свойствами объекта и иметь, Сохраняют/Отменяют поддержку?
Я попробовал фрагмент кода по http://fgheysels.blogspot.com/2009/06/winforms-databinding-on-cancellable.html, но я не знаю то, что требуется, чтобы это работало, связывая со свойствами объектов.
Это - то, что я имею, но я не могу выяснить, как заставить кнопку отмены препятствовать тому, чтобы свойство объектов было обновлено. Свойства обновляются с любым значением, был в последний раз введен, даже когда кнопка отмены была нажата.
public DocumentProperties(FileFormatReader fileReader)
{
binding = new BindingSource();
binding.DataSource = fileReader.Header;
bindingManager = BindingContext[binding.DataSource];
unitComboBox.DataSource = Enum.GetNames(typeof(Constants.Units));
unitComboBox.DataBindings.Add("SelectedIndex", binding.DataSource, "UnitNumberIndex");
operatorTextBox.Text = fileReader.Header.OperatorName;
operatorTextBox.DataBindings.Add("Text", binding, "OperatorName");
binding.SuspendBinding(); // Doesnt work
}
private void okButton_Click(object sender, EventArgs e)
{
binding.ResumeBinding();
this.DialogResult = DialogResult.OK;
}
private void cancelButton_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Cancel;
}
Любые предложения о том, как сделать это, ценились бы.
Кэшируйте значение при его открытии и сбрасывайте его до кэшированного значения в обработчике кнопок отмены.
Объект, который вы связываете, должен реализовывать интерфейс IEditableObject, который имеет методы для начала, завершения и отмены редактирования.