2011-02-28 66 views
0

我有一些文本框綁定到bindingsource和bindingnavigator。檢測文本框上更改的文本,同時忽略數據綁定

我想要檢測值何時發生變化,並提示用戶如果他們想要更新。

當表單初始化時,然後當綁定導航器移動到下一個記錄時,text_changed事件在文本框上觸發,我有一個布爾值來確定事情是否發生了變化。

有沒有一種方法來設置我的布爾只有當有效數據的變化已經發生或有更好的方式,如果事情已經改變

回答

1

通常要做到這一點的方法是要注意當文本框的支持性質具有檢測改變。的

所以不是檢查UI事件你會做類似

Public Class myClass 
    private _myString As String = "" 
    private _isDirty As Boolean 
    Public Property MyString(ByVal _newString As String) As String 
    Get 
     Return _myStrig 
    End Get 
    Set 
     If Not _newString.Equals(_myString) Then 
       _myString = _newString 
       _isDirty = true 
     End If 
    End Set 
    End Property 
    'You could also just put a property on IsDirty and check that 
    Public Sub CanSave() 
    Return _isDirty 
    End Sub 
End Class 

基本上你驗證設置之前,該數值實際上已經改變了,那麼當你需要檢查對象isDirty你只是檢查_isDirty字段。

您還可以利用INotifyPropertyChanged

相關問題