将字符串属性Customer绑定到TextBox时报错,寻求解决方法
问题原因
你遇到的错误是因为数据绑定参数传递错误:
DataBindings.Add的第二个参数需要传入数据源对象,但你传的是字符串类型的Customer属性值,而非包含该属性的窗体实例;- 第三个参数
"Text"是指定数据源对象的成员名,但字符串本身不存在名为Text的属性,因此触发参数错误。
正确解决方案
修改Form1_Load中的绑定代码,将数据源指定为当前窗体实例Me,数据源成员指定为你的属性名"Customer":
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load TextBox1.DataBindings.Add("Text", Me, "Customer") End Sub
完整修正代码
Public Class Form1 Implements INotifyPropertyChanged Private _Customer As String = "DEFAULT" Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load TextBox1.DataBindings.Add("Text", Me, "Customer") End Sub Public Property Customer As String Get Return _Customer End Get Set _Customer = Value NotifyPropertyChanged() End Set End Property Private Sub NotifyPropertyChanged(<CallerMemberName()> Optional ByVal propertyName As String = Nothing) RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName)) End Sub End Class
补充说明
DataBindings.Add的三个核心参数含义:
- 第一个参数:目标控件要绑定的属性名(这里是TextBox的
"Text"); - 第二个参数:包含绑定属性的数据源对象(这里是窗体实例
Me,因为Customer是Form1的属性); - 第三个参数:数据源对象中要绑定的属性名(这里是
"Customer")。
内容的提问来源于stack exchange,提问作者Sakkast
相关产品推荐
相关产品推荐

