2014-09-27 94 views
-1

我試圖在我的BL類中的某個屬性發生更改時更新我的​​用戶界面。請有人建議最好的方式來做到這一點在vb.net當屬性發生變化時如何更新用戶界面

+0

請舉例說明什麼是或不正在發生什麼,並描述這是什麼東西:自定義控制?用戶控制?繼承控制? std控制? – Plutonix 2014-09-27 16:57:36

+0

我正在運行一個sql備份並使用SqlInfoMessage來獲取百分比完整的打印消息。此時我更新了我的課程中的一個公共屬性,我希望我的UI中的文本框的值爲。但是,我不確定如何在屬性更改後立即更新UI,而不是從空白文本框跳轉到備份打印消息的完整輸出。 – DevPenguin 2014-09-27 17:06:21

+0

if myTextBox.Text = someTextToShow' does not work then you should share the code;如果它在一些循環中,Windows不會執行每個更新,而是一個進度條。 – Plutonix 2014-09-27 17:28:20

回答

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每當值改變。

+0

感謝您的幫助,我將在未來提供更多的信息,但這是一種享受! – DevPenguin 2014-09-27 20:47:48

相關問題