【发布时间】:2010-10-05 19:34:44
【问题描述】:
我有
Public Overrides Property UID() As String
Get
Return mUID
End Get
Set(ByVal value As String)
If Me.IsNew Then
mUID = value
End If
OnPropertyChanged("UID")
End Set
End Property
该类实现了 INotifyPropertyChanged,并且我正在绑定到 WinForm 控件中的 TextBox 控件。
问题是当用户在文本框中键入一个值时,即使绑定的值保持不变,新值也会显示在文本框中,这与 IsNew 为 false 的事实相同。 (我尝试过使用这两种类型的 DataSourceUpdateMode。)
我已阅读INotifyPropertyChanged problem 并且我相信 Windows 窗体的工作方式基本相同,因为事件的发起者也不会检测到对事件的处理。
我可以在 BO 类中做些什么来强制控件响应 INotifyPropertyChanged 事件吗?或者我可以在 BO 类中做些什么来让控件显示正确的值?
我意识到我可以通过各种方式在 GUI 代码中处理这个问题,但这不是我的目标。
【问题讨论】:
-
如果你把对
OnPropertyChanged("UID")的调用放在If Me.IsNew块内会发生什么?
标签: winforms data-binding inotifypropertychanged