我有一些绑定到bindingsource和bindingnavigator的文本框。
我想检测值何时发生变化,并提示用户在需要更新时进行混淆。
当表单首次初始化时,当绑定导航器移动到下一条记录时,text_changed事件将在文本框中触发,我在其中有一个布尔值来确定事情是否已更改。
有没有办法在发生有效数据更改时设置我的布尔值,或者有更好的方法来检测事情是否发生了变化
答案 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