(我知道有关于此的问题,但正如您在我的问题中所看到的,我认为我尝试了解决方案但没有成功)。
简单地说,我正在尝试将文本框中的文本与视图模型绑定。
视图模型中的代码:
public class MainClass :INotifyPropertyChanged
{
...
public event PropertyChangedEventHandler PropertyChanged;
protected void onPropertyChanged (string propertyName)
{
var handler = PropertyChanged;
if (handler != null) {
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
private string _Stuff ="Original Value";
public string Stuff {
get { return _Stuff; }
private set {
if (value != _Stuff)
{
_Stuff = value;
Method();
OnPropertyChanged("Stuff");
}
}
}
}
和XAML
<TextBox Text="{Binding Stuff,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
</TextBox>
现在,绑定确实有一种方式 - 也就是说,首次初始化XAML时,文本框中会填充“原始值”。但是当我更改框中的值时(即使我失去了对它的关注),该字段也不会更新(我可以说,因为,首先,不调用Method,而且当我使用调试器时,我可以看到价值没有改变。)
我做错了什么?
编辑:我忘了提到上下文是在控制器中设置的,并且显然正在工作,因为正如我所说,绑定是单向工作的。
答案 0 :(得分:3)
你的问题可能就在这里:
public string Stuff {
get { return _Stuff; }
private set {
if (value != _Stuff)
{
_Stuff = value;
Method();
OnPropertyChanged("Stuff");
}
}
}
您的二传手是private
,请移除private
,它应该有效。