Windows FormsLabel
で構造体メンバーをs にバインドしようとしています。ただし、この構造はクラスのメンバーであり、いくつかのメンバーをラベルにバインドする必要があるため、これを行うことはできません。
この構造が であり、バインドしてプロパティをSystem.Drawing.Point
にしたいとしましょう。X
Y
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