PropertyChanged
хочет увидеть имя свойства, которое изменилось, а не значение. Измените вызов события на:
PropertyChanged(this, new PropertyChangedEventArgs("Text"));
и это сделает работу.
Однако я бы также изменил конструкцию на
public string Text {
get{return _Text;}
protected set {
_Text = value;
if(null != PropertyChanged){
PropertyChanged(this,new PropertyChangedEventArgs("Text"));
}
}
}
и затем не вызывайте PropertyChanged-событие из начала и конца.
И чтобы пойти еще дальше, создайте invocation-методы, такие как:
protected virtual void OnPropertyChanged(string propertyName) {
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e) {
if (null != PropertyChanged) {
PropertyChanged(this,e);
}
}
, а затем вызовите их из вашего установщика свойств.