基本思想是通过 Person 属性连接 Name 和 Age。在 Name 的 setter 中,根据姓名搜索 person,如果结果不为 null,则将其分配给 Person。在 Person 的 setter 中,设置 Age 并通知 UI。代码就像:
private Person _selectedPerson;
public Person SelectedPerson
{
get { return _selectedPerson; }
set
{
if (value == null)
return;
_selectedPerson = value;
PersonAge = _selectedPerson.Age;
OnPropertyChanged("Person");
}
}
private string _personName;
public string PersonName
{
get { return _personName; }
set
{
_personName = value;
var person = Persons.FirstOrDefault(item => item.Name == _personName);
if (person != null)
SelectedPerson = person;
OnPropertyChanged("PersonName");
}
}
private int _personAge;
public int PersonAge
{
get { return _personAge; }
set
{
_personAge = value;
OnPropertyChanged("PersonAge");
}
}
在上面的代码中,Persons 是你绑定到 ListBox 的列表,PersonName 绑定到 name 文本框,PersonAge 绑定到 age 文本框。我在这里保持 PersonAge 可写,因为您使用的是文本框而不是文本块。
希望它可以提供帮助。