TextBox - 绑定属性不会刷新自身

pel*_*ano 1 data-binding wpf textbox refresh

我有一个文本框,Text属性就是这样绑定的

   <TextBox Name="txtBox">
        <TextBox.Text>
            <Binding Path="Data">

            </Binding>
        </TextBox.Text>
    </TextBox>
Run Code Online (Sandbox Code Playgroud)

可以在我的程序中的各个位置更改提交的数据.但是,如果我在另一个控件中更改了归档数据,则t txtBox Text属性不会刷新自身.我仍然可以看到旧的价值(尽管数据字段已被更改).有没有办法强制文本框刷新itselft或某事?

Mar*_*man 5

为了让您的文本框知道它绑定的数据何时发生更改,它所绑定的类必须实现INotifyPropertyChanged.下面是C#中的一个例子.如果将文本框绑定到属性Data,则文本框应在执行Data属性的setter时更新.请注意,INotifyPropertyChanged将需要对System.ComponentModel命名空间的引用(在C#中使用或在VB中导入).

public class MyData : INotifyPropertyChanged
{
    string _data;

    public event PropertyChangedEventHandler PropertyChanged;

    public void OnPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

    public string Data
    {
        get
        {
            return _data;
        }

        set
        {
            _data = value;
            this.OnPropertyChanged("Data");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)