即使取消验证,DataSource也会更新

时间:2013-06-19 19:12:07

标签: c# winforms validation data-binding

直接从C#文档中获取:

  

使用数据绑定时,控件中的数据在执行Validating事件期间与数据源同步。如果取消验证事件,则数据将不会与数据源同步。

我其实在说:

private void textBoxGrainWidth_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
    int result;
    if(!int.TryParse(textBoxGrainWidth.Text,out result))
    {
        e.Cancel = true;
        return;
    }
}

这实际上是通过以下方式调用属性上的设置:

this.textBoxGrainWidth.DataBindings.Add(
    new System.Windows.Forms.Binding("Text",
        this.bindingSourceControlData, "GrainWidth", true));

所以我在文档上给BS打电话。 This post refers同样的问题,但没有真正的解决方案。

有什么建议吗?不要使用Winforms&装订&同时验证?

1 个答案:

答案 0 :(得分:0)

根据我的经验,如果您的来源是int字段并输入了无效数据,则不会同步。所以,我不知道你this.bindingSourceControlData的类型是什么,但如果它不是int,也许应该是。{/ p>