我有一个简单的 winforms 应用程序,其中包含一个表单、一些控件和一个定义如下的业务对象:
public class BusinessObject : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
{
PropertyChanged(this, e);
}
}
private string _phoneNumber;
public string PhoneNumber
{
get { return _phoneNumber; }
set
{
if (_phoneNumber == value)
{
return;
}
_phoneNumber = value;
OnPropertyChanged(new PropertyChangedEventArgs("PhoneNumber"));
}
}
在我的表单上,我有一个通过绑定(bind)源绑定(bind)到 PhoneNumber 属性的文本框,并且数据源更新模式设置为 OnPropertyChanged。这一切都按预期进行。在将文本分配给我的业务对象上的 PhoneNumber 属性之前,我需要对文本进行一些验证。我认为我应该在文本框的验证事件处理程序中执行此操作,如果输入无效,我将显示错误提供程序并设置 e.Cancel = true。不幸的是,这并不能阻止无效输入绑定(bind)到 PhoneNumber 属性。有没有简单的方法可以做到这一点?
最佳答案
Data Validation可能正是您正在寻找的东西。应防止无效输入更改您的对象。
关于c# - 防止无效的文本框输入绑定(bind)到业务对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10017313/