我创建了一个带有MS TextBox
控件的简单应用程序,并且已经对TextBox
进行了DataBinding。如果我尝试将double
值输入TextBox
,那么我得到了
“StackOverFlowException:对于Int32,值太大或太小”。
这是我的代码:
Form1.cs的
DataBinding db = new DataBinding();
this.dataBindingBindingSource.DataSource = db;
this.textBox1.DataBindings.Add("Text", dataBindingBindingSource, "Number", true, DataSourceUpdateMode.OnPropertyChanged);
DataBinding.cs (我自己的课程)
class DataBinding : INotifyPropertyChanged
{
private int number=4;
public int Number
{
get
{
return number;
}
set
{
number = value;
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged()
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Number"));
}
}
}
有谁能告诉我,我们怎样才能克服这个例外?
答案 0 :(得分:0)
您定义的Number
属性属于int
类型,但您在绑定文本框中输入的数字太小或太大,无法容纳int
。因此,无法在Number
属性中进行设置。因此,代码抛出异常。
您期望它做什么?我们无法告诉您如何解决它。一些可能的选择是:
int
的类型来增加字段/属性的位宽,从而确保可以表示更大的值int
int