请问您的Person
班级成员Name
和Age
是否自己提出INPC?
如果您想更新在ViewModel
要么Name
或Age
的价值并使其在视图中反映,你需要他们提高物业内Person
类单独改变了。
绑定很好,但视图几乎没有通知视图模型的变化。还记得UpdateSourceTrigger
为TextBox
默认为LostFocus
,设置为PropertyChanged
将更新您输入的ViewModel
中的字符串。
简单的例子:
public class Person : INotifyPropertyChanged {
private string _name;
public string Name {
get {
return _name;
}
set {
if (value == _name)
return;
_name = value;
OnPropertyChanged(() => Name);
}
}
// Similarly for Age ...
}
现在你的XAML是:
<StackPanel DataContext="{Binding CurrentPerson}">
<TextBox Text="{Binding Name}" />
<TextBox Margin="15"
Text="{Binding Age}" />
</StackPanel>
,或者您也可以通过绑定@Kshitij
的建议
<StackPanel>
<TextBox Text="{Binding CurrentPerson.Name}" />
<TextBox Margin="15"
Text="{Binding CurrentPerson.Age}" />
</StackPanel>
,并更新视图模型你的打字
<StackPanel DataContext="{Binding CurrentPerson}">
<TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" />
<TextBox Margin="15"
Text="{Binding Age, UpdateSourceTrigger=PropertyChanged}" />
</StackPanel>
来源
2013-03-25 11:09:01
Viv
明白了,谢谢 – LastBye 2013-03-25 11:11:29