绑定到对象的属性

我想网格中的一系列TextBox 绑定一个对象的属性中,该对象本身就是我的ViewModel(DataContext)中的另一个属性。

CurrentPersonNameAge属性组成

在ViewModel中:

 public Person CurrentPerson { get; set ... (with OnPropertyChanged)} 

Xaml:

   

我不确定使用的方法,我在网格范围内设置了另一个DataContext,没有任何结果,还尝试设置源和路径,如Source = CurrentPerson,Path = Age,没有任何结果,这些都是试用,看看如果有任何改变。

我该怎么做到这一点?

您的Person类成员NameAge是否会自己提高INPC?

如果要在ViewModel更新NameAge的值并使其反映在视图中,则需要它们在Person类中单独更改属性。

绑定很好,但视图几乎没有通知视图模型的更改。 另外请记住,默认情况下, TextBoxUpdateSourceTriggerLostFocus ,设置为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将是:

     

或者您也可以按照@Kshitij的建议进行绑定

     

并在您输入时更新视图模型

     

试试这个:

   

基本上,您可以使用以下方法深入查看属性. 分隔器。

为了将来参考,如果你想深入研究集合,你可以像在代码中一样使用MyCollection[x] (其中x将被硬编码的数字替换, 而不是变量 )。