如何在属性更改时更新UI

时间:2014-09-27 16:54:33

标签: vb.net user-interface properties

当我的BL类中的属性发生更改时,我尝试更新我的UI。请有人建议在vb.net中执行此操作的最佳方法

1 个答案:

答案 0 :(得分:0)

不是一个非常精确的问题,所以我将解释标准方式(在我看来)。

在您的班级中实施INotifyPropertyChanged界面并处理对象的PropertyChanged事件。

首先是包含相关属性的对象的类:

Public Class MySweetClass
    Implements System.ComponentModel.INotifyPropertyChanged

    Private _MyProperty As String
    Public Property MyProperty As String
        Get
            Return _MyProperty
        End Get
        Set(value As String)
            _MyProperty = value
            RaiseEvent PropertyChanged(Me, New System.ComponentModel.PropertyChangedEventArgs("MyProperty"))
        End Set
    End Property

    Public Event PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
End Class

请注意,一旦属性值发生变化,就会引发PropertyChanged事件。

在您的表单中处理此事件:

Public Class Form1
    Private WithEvents MySweetObject As MySweetClass

    Private Sub MySweetObject_PropertyChanged(sender As Object, e As System.ComponentModel.PropertyChangedEventArgs) Handles MySweetObject.PropertyChanged
        'Update gui here
    End Sub
End Class

这使您可以在值发生变化时更新GUI。