1

私は持っている

    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コードでこれをさまざまな方法で処理できることはわかっていますが、それは私の目標ではありません。

4

1 に答える 1