验证绑定,具体取决于单击的按钮

时间:2017-07-25 15:15:14

标签: c# .net winforms datagridview bindingsource

我搜索了很多,但我找不到合适的解决方案。

我有TextBoxDataGridView,3 ButtonBindingSource

点击Button'更改'我设置了绑定,数据从DataGridView加载到TextBox,其工作原理为:

textBox.DataBindings.Add("text", bindingSource, "Name", true, DataSourceUpdateMode.OnPropertyChanged);

我现在点击Button'取消'绑定将被清除:

textBox.DataBindings.Clear();

但数据仍然转移到DataGridView。我认为这是因为OnPropertyChanged。当我将其更改为OnValidation时,我知道它只会在验证后保存。

但我如何验证或拒绝验证?我有2 Button秒,具体取决于' Save'按钮或'取消'单击按钮,它应该转移到DataGridView或不转移。

还有事件

textBox.Validating += textBox_Validating;

我没有让它运行,因为在点击按钮之前调用了这个函数。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以使用DataSourceUpdateMode.Never创建绑定,并将其存储在表单级变量(字段)中。然后,您可以使用WriteValue方法应用更改(分别为ReadValue以还原更改)。

这样的事情:

形式:

Binding nameBinding;

点击更改按钮:

nameBinding = textBox.DataBindings.Add("Text", bindingSource, "Name", true, DataSourceUpdateMode.Never);

点击取消按钮:

nameBinding.ReadValue();
textBox.DataBindings.Clear();
nameBinding = null;

点击保存按钮:

nameBinding.WriteValue();
textBox.DataBindings.Clear();
nameBinding = null;