我有一个文本框,Text属性就像那样绑定
<TextBox Name="txtBox">
<TextBox.Text>
<Binding Path="Data">
</Binding>
</TextBox.Text>
</TextBox>
可以在我的程序中的各个位置更改提交的数据。但是,如果我在另一个控件中更改了归档数据,则t txtBox Text属性不会刷新自身。我仍然可以看到旧的价值(尽管数据字段已被更改)。 有没有办法强制文本框刷新itselft或某事?
答案 0 :(得分: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");
}
}
}
答案 1 :(得分:0)
您的Data属性所有者对象是否实现了INotifyPropertyChanged? 如果没有实现它并触发PropertyChanged当你的set属性被调用时