我的视图模型中有一个属性,它在某些条件下返回一个常量。
其实现与此类似:
class Tmp : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public String Text
{
get { return "testing"; }
set
{
PropertyChanged(this,new PropertyChangedEventArgs("Text")); }
}
}
所以属性文本总是返回“测试”。
我将它绑定到一个文本框,如:
<TextBox Text="{Binding Path=Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
当应用程序启动时,文本框 correclty 表示正在测试。
现在,当我在文本框中键入内容时,将调用 setter,它调用 PropertyChanged。
在此之后(可能是 GUI)调用 getter 并获取值“testing”。
但是,文本框中的文本不会更改回测试。
所以我可以在文本框中输入“abc”,即使模型只是存储“测试”,文本框也会显示“abc”。
为什么每次击键时文本框中的文本都没有重置为“测试”?