【问题标题】:DataSource gets updated even when Validating is canceled即使取消验证,数据源也会更新
【发布时间】:2025-12-28 14:15:15
【问题描述】:

取自 C# 文档:

当您使用数据绑定时,您的控件中的数据会在 Validating 事件执行期间与数据源同步。如果取消 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 & Binding & Validation?

【问题讨论】:

    标签: c# winforms validation data-binding


    【解决方案1】:

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

    【讨论】:

      最近更新 更多