Да, это работает, но не согласованно. Это работает иногда, но не всегда. Кажется, это больше для меня ошибка синхронизации. Но вы можете немного изменить свой подход, чтобы заставить его работать
Сначала вы должныреализовать механизм уведомлений в вашем классе Person
Sample
public class Person:INotifyPropertyChanged
{
private string name;
public string Name
{
get { return name; }
set { name = value; OnPropertyChanged("Name"); }
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
#endregion
}
Затем вам нужно создать свойство для своего класса person и установить его как datacontext. Теперь вы можете простоизмените значение имени при нажатии кнопки, и оно будет работать хорошо
Пример
public Window1()
{
MyPerson = new Person();
MyPerson.Name = "A";
DataContext = MyPerson;
InitializeComponent();
}
private Person myPerson;
public Person MyPerson
{
get { return myPerson; }
set { myPerson = value; OnPropertyChanged("MyPerson"); }
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MyPerson.Name = "B";
}
Проверьте, поможет ли это ...