我正在尝试将结构成员绑定到Windows FormsLabel
中的 s 。但是,我不能这样做,因为这个结构是一个类的成员,我需要将几个成员绑定到标签。
假设这个结构是 a System.Drawing.Point
,我想将X
和Y
属性绑定到 a Label
。
Imports System.ComponentModel
Public Class Form1
Implements INotifyPropertyChanged
Private _pt As Point
Public Property Pt As Point
Get
Return _pt
End Get
Set(value As Point)
_pt = value
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("Pt"))
End Set
End Property
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
Label1.DataBindings.Add("Text", Me, "Pt")
Label2.DataBindings.Add("Text", Me.Pt, "X")
Label3.DataBindings.Add("Text", Me, "Pt.Y")
End Sub
Public Event PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
End Class
如果我设置bindingsource
toMe
和datamember
to 结构,那么Label1
将显示ToString()
方法的结果、属性的Label2
值并且不会改变。X
Label3
Point
但是如果我为属性分配一个新的Pt
,那么只会Label1
更新它的值。Label2
不会因为datasource
不再一样。此外,Label3.DataBindings.Add("Text", Me, "Pt.Y")
也不起作用,因为它不可能datamember
是“子成员”。
我还尝试制作一个实现INotifyPropertyChanged
其所有属性的新结构,但没有运气。
即使我为它分配了新的结构,有没有办法进行绑定Label2
或可能?Label3
我的目标是通过数据绑定Point
为属性分配新值并Me.Pt
观察其值。Pt.X
Pt.Y
Label2
Label3