【发布时间】:2017-04-08 03:09:22
【问题描述】:
在 WPF 中,我想为属性创建三个文本框:FullName、FirstName 和 LastName。这些文本框的文本将基于左侧的列表框(如下面的程序图像所示)。我已经完成了从列表框获取文本到文本框的工作,但我想同步名称的值,例如:
更改 FullName 的值,更改列表框、FirstName 和 LastName 框
更改 FirstName 和 LastName 的值会更改 FullName 和列表框
程序如下所示: (Program image)
好的,感谢 Jared,我能够通过对他的答案进行小的更改来解决问题,但我不喜欢我的解决方案,大声笑有人可以建议对这个程序进行更好的修改吗?
class Student : INotifyPropertyChanged
{
private string name;
public string Name
{
get
{
return name;
}
set
{
FirstName = value.Split(" ".ToCharArray())?[0];
LastName = value.Split(" ".ToCharArray())?[1];
OnPropertyChanged("Name");
OnPropertyChanged("FirstName");
OnPropertyChanged("LastName");
}
}
private string firstName;
public string FirstName
{
get
{
return firstName;
}
set
{
firstName = value;
name = value + " " + LastName;
OnPropertyChanged("FirstName");
OnPropertyChanged("Name");
}
}
private string lastName;
public string LastName
{
get
{
return lastName;
}
set
{
lastName = value;
name = FirstName + " " + value;
OnPropertyChanged("LastName");
OnPropertyChanged("Name");
}
}
private Course _course;
public Course Course
{
get { return _course; }
set
{
_course = value;
OnPropertyChanged("Course");
}
}
private int _age;
public int Age
{
get { return _age; }
set
{
_age = value;
OnPropertyChanged("Age");
}
}
private DateTime _birthday;
public DateTime Birthday
{
get { return _birthday; }
set
{
_birthday = value;
OnPropertyChanged("Birthday");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
【问题讨论】:
-
关于名称之间缺少空格...这不是故意的
标签: c# wpf data-binding properties inotifypropertychanged