私は持っている
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 の問題を読みましたが、イベントのイニシエーターもイベントの処理を検出しないという点で、Windows フォームは基本的に同じように機能すると思います。
コントロールが INotifyPropertyChanged イベントに応答するように強制するために、BO クラスでできることはありますか? または、コントロールに正しい値を表示させるために、BO クラス内で他にできることはありますか?
GUIコードでこれをさまざまな方法で処理できることはわかっていますが、それは私の目標ではありません。