請問您的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