我正在尝试将结构成员绑定到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
如果我设置bindingsourcetoMe和datamemberto 结构,那么Label1将显示ToString()方法的结果、属性的Label2值并且不会改变。XLabel3
Point但是如果我为属性分配一个新的Pt,那么只会Label1更新它的值。Label2不会因为datasource不再一样。此外,Label3.DataBindings.Add("Text", Me, "Pt.Y")也不起作用,因为它不可能datamember是“子成员”。
我还尝试制作一个实现INotifyPropertyChanged其所有属性的新结构,但没有运气。
即使我为它分配了新的结构,有没有办法进行绑定Label2或可能?Label3
我的目标是通过数据绑定Point为属性分配新值并Me.Pt观察其值。Pt.XPt.YLabel2Label3