属性MyLabel.Text
更改后,我需要更改标签Path
。看下面我的代码。我知道如何从我的课程FrmImport
之外进行活动,我可以只订阅PropertyChanged
事件,但是我不确定如何从FrmImport
类本身进行操作。您可以看到我已经实现INotifyPropertyChanged
并创建了OnPropertyChanged
,一旦设置了路径OnPropertyChanged("Path")
就会调用它。现在,我不敢在FrmImport本身上订阅我的活动,而是我想我只需要做一些事情:MyLabel.DataBindings.Add(??)
使它起作用,但现在可以叠加了。有人可以帮忙吗?
Public Class FrmImport
Implements INotifyPropertyChanged
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Protected Sub OnPropertyChanged(propName As String)
If propName IsNot Nothing Then
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
End If
End Sub
Private _path As String
Public Property Path As String
Get
Return _path
End Get
Set
_path = Value
OnPropertyChanged("Path")
End Set
End Property
Private Sub FrmImport_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' ??? MyLabel.DataBindings.Add("Text", Me.Path)
End Sub
还是我应该像这样不使用INotifyProperty来使用它?:
Public Property Path As String
Get
Return _path
End Get
Set
_path = Value
OnPropertyChanged("Path")
MyLabel.Text= Me.Path
End Set
End Property
答案 0 :(得分:0)
当数据存储在表单外部时,我通常会进行绑定。例如,如果您有一个PathInformation类,其中包含一堆需要显示的属性。该类需要有一些地方来告知它已更新的表单,并告诉类要自我更新。
当变量直接位于表单中时,实际上并不需要绑定。只需直接更新路径即可。不需要OnPropertyChanged,因为表单之外的任何东西都不需要知道更改(因为它们已经调用了Path属性)。
但这只是边缘观点,还取决于其余代码。