.net 如何使数据绑定具有双向性(不仅是在UI发生更改时,而且是在代码中的属性发生更改时)?

.net 如何使数据绑定具有双向性(不仅是在UI发生更改时,而且是在代码中的属性发生更改时)?,.net,vb.net,winforms,visual-studio-2008,.net,Vb.net,Winforms,Visual Studio 2008,在Windows窗体/用户控件中使用数据绑定时遇到问题。例如: 创建一个windows窗体,在其上放置一个文本框,并在其上放置两个按钮。表格后面的代码是: Imports System.ComponentModel Public Class Form1 Implements System.ComponentModel.INotifyPropertyChanged Public Event PropertyChanged(ByVal sender As Object, ByVal

在Windows窗体/用户控件中使用
数据绑定时遇到问题。例如:

创建一个windows窗体,在其上放置一个文本框,并在其上放置两个按钮。表格后面的代码是:

Imports System.ComponentModel
Public Class Form1
    Implements System.ComponentModel.INotifyPropertyChanged
    Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged

    Private Sub NotifyPropertyChanged(ByVal info As String)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
    End Sub

    Private mSomeProperty As String

    Public Sub New()
        ' This call is required by the Windows Form Designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.
        Me.TextBox1.DataBindings.Add("text", Me, "SomeProperty", False, DataSourceUpdateMode.OnPropertyChanged)
    End Sub


    Public Property SomeProperty() As String
        Get
            Return mSomeProperty
        End Get
        Set(ByVal value As String)
            mSomeProperty = value
            NotifyPropertyChanged("SomeProperty")
        End Set
    End Property

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MsgBox(Me.SomeProperty)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.SomeProperty = "Set in code - see it on the UI?"
    End Sub

End Class
如果在文本框中键入内容并按
按钮1
,您将看到一个包含属性文本的消息框。但是,如果按
按钮2
(在代码中设置属性),然后再次按
按钮1
,您将看到,虽然属性确实在代码中设置,但文本框并不反映更改

请问我错过了什么


编辑:更新代码以提供INotifyPropertyChanged的实现
。现在,它可以根据需要工作。

您需要实现该接口


如果MSDN对您没有帮助,您可能会从中受益良多。

INotifyPropertyChanged
成功了,谢谢!更新代码(以上)以反映更改!令人惊叹的!