我在表单上有以下代码:
Public Sub Init(ByVal SelectedItems As List(Of Cheque))
Items = New BindingList(Of Cheque)(SelectedItems )
BindingSource1.DataSource = Items
txtNo.DataBindings.Add("Text", Items, "Number")
txtChequeAmount.DataBindings.Add("Text", Items, "Amount")
lbId.DataBindings.Add("Text", Items, "Id")
End Sub
此代码被调用如下:
...
fmEdit.Init(myList)
fmEdit.Show()
所有变量都已填充等,它似乎通过DataBindings.Add确定,但是当表单出现时,我收到有关无法绑定到名为Id的属性或列的错误。我尝试替换DataBindings.Add代码以使用BindingSource1而不是Items但我得到了类似的错误。
类中属性的名称与Databindings.Add代码中名称的名称相匹配。
有什么想法吗?
由于
更新:这是我的课程:
Public Class Cheque
Public Id As String
Public Status As Byte
Public Amount As String
Public Number As String
End Class
答案 0 :(得分:1)
在您的示例代码中,您显示了公共字段,这通常是一个非常糟糕的主意。除非您非常努力(可以这样做),否则数据绑定仅适用于属性。因此,将这些字段更改为属性,它将起作用。
IIRC在vb.net中这是:
Public Class Cheque
Public Property Id As String
Public Property Status As Byte
Public Property Amount As String
Public Property Number As String
End Class
(但我的vb生锈了)
或在C#中:
public class Cheque {
public string Id {get;set;}
public byte Status {get;set;}
public string Amount {get;set;}
public string Number {get;set;}
}