Winforms,BindingList,BindingSource - 无法绑定到属性/列Id

时间:2011-02-28 12:28:39

标签: .net vb.net winforms data-binding .net-2.0

我在表单上有以下代码:

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

1 个答案:

答案 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;}
}