Windows FormsLabelで構造体メンバーをs にバインドしようとしています。ただし、この構造はクラスのメンバーであり、いくつかのメンバーをラベルにバインドする必要があるため、これを行うことはできません。
この構造が であり、バインドしてプロパティをSystem.Drawing.Pointにしたいとしましょう。XYLabel
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()Label2XLabel3
しかし、新しいプロパティを割り当てると、その値のみPointが更新されます。はもう同じではありません。また、「サブメンバー」である可能性がないため、機能しません。PtLabel1Label2datasourceLabel3.DataBindings.Add("Text", Me, "Pt.Y")datamember
INotifyPropertyChangedまた、すべてのプロパティを実装する新しい構造を作成しようとしましたが、うまくいきませんでした。
新しい構造を割り当てた場合でも、バインドLabel2または可能にする方法はありますか?Label3
Point私の目標は、新しいプロパティを割り当て、データバインディングを介しておよびの値Me.Ptを観察することです。Pt.XPt.YLabel2Label3