检测文本框中更改的文本,同时忽略数据绑定

时间:2011-02-28 15:04:41

标签: .net vb.net winforms data-binding .net-2.0

我有一些绑定到bindingsource和bindingnavigator的文本框。

我想检测值何时发生变化,并提示用户在需要更新时进行混淆。

当表单首次初始化时,当绑定导航器移动到下一条记录时,text_changed事件将在文本框中触发,我在其中有一个布尔值来确定事情是否已更改。

有没有办法在发生有效数据更改时设置我的布尔值,或者有更好的方法来检测事情是否发生了变化

1 个答案:

答案 0 :(得分: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

基本上你在设置之前验证一个值是否已经实际更改,然后当你需要检查Object是否为脏时,你只需检查_isDirty字段。

您还可以使用INotifyPropertyChanged