C#WinForms-具有可取消表单的数据绑定简单组件
如何使用绑定到对象属性并具有保存/取消支持的简单组件(文本框、组合框)实现表单 我在尝试了代码片段,但我不知道绑定到对象属性需要什么 这就是我所拥有的,但我不知道如何获得“取消”按钮以防止对象属性被更新。即使按下“取消”按钮,属性也会使用上次输入的值进行更新C#WinForms-具有可取消表单的数据绑定简单组件,c#,winforms,data-binding,C#,Winforms,Data Binding,如何使用绑定到对象属性并具有保存/取消支持的简单组件(文本框、组合框)实现表单 我在尝试了代码片段,但我不知道绑定到对象属性需要什么 这就是我所拥有的,但我不知道如何获得“取消”按钮以防止对象属性被更新。即使按下“取消”按钮,属性也会使用上次输入的值进行更新 public DocumentProperties(FileFormatReader fileReader) { binding = new BindingSource(); binding.
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;
}
如果您对如何执行此操作有任何建议,我们将不胜感激。打开值时将其缓存,并在“取消按钮”处理程序中将其重置为缓存的值。您要绑定的对象应该实现它,它具有开始、结束和取消编辑的功能。谢谢。我尝试使用它,但由于某种原因,BeginEdit()触发了三次,EndEdit()也在表单加载过程中触发。真奇怪,不得不手动取消。NET没有更好的解决方案,这真是太差劲了。