winforms数据绑定用户控件

时间:2013-11-04 12:12:16

标签: vb.net winforms data-binding

我有一个数据绑定问题,基于我有一个主表单Form1和一个用户控件CustomerDetails的场景。 我的主窗体上有一个gridview,上面只有名称,希望在我的用户控件中显示更详细的视图。

我的主窗体有一个绑定源,我的usercontrol上有一个绑定源,设计时绑定了各个字段: 例如 名字 姓 杜伯 地址

我已经按照指南进行了操作 http://msdn.microsoft.com/en-us/library/ms233813%28v=vs.90%29.aspx

这使我能够正确显示第一条记录,但是当我点击主要用户控件上的其他客户时未更新它仍保留原始客户详细信息

代码:FORM 1

    Public Class Form1

        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

            Dim CustomerList As New List(Of Customer)

            CustomerList.Add(New Customer With {.FirstName = "Fred", .LastName = "Bloggs"})
            CustomerList.Add(New Customer With {.FirstName = "John", .LastName = "Smith"})
            CustomerList.Add(New Customer With {.FirstName = "Harry", .LastName = "Davies"})
            CustomerList.Add(New Customer With {.FirstName = "Ben", .LastName = "Taylor"})
            CustomerList.Add(New Customer With {.FirstName = "Rob ", .LastName = "Jones"})

            CustomerBindingSource.DataSource = CustomerList

            End Sub
        End Class


    Code: CustomerDetails
    Imports System.ComponentModel
    <System.ComponentModel.ComplexBindingProperties("DataSource", "DataMember")>
    Public Class CustomerDetails

        ' DataMember Property
        Public Property DataMember() As Object
            Get
                Return CustomerBindingSource.DataMember
            End Get
            Set(value As Object)
                CustomerBindingSource.DataMember = value
            End Set
        End Property

        ' DataSource Property
        Public Property DataSource() As Object
            Get
                Return CustomerBindingSource.DataSource
            End Get
            Set(value As Object)
                CustomerBindingSource.DataSource = value
            End Set
        End Property
  End Class

注意:

我正在使用设计时绑定,因此希望自动处理相关事件。

我的主窗体有一个客户列表,usercontrol具有详细信息视图。

当您移动主窗体上的列表时,我希望usercontrol中的详细信息在它保留在第一个客户时更新?

Usercontrol and form

由于

Rob

0 个答案:

没有答案