buldum o daha az hatalar ve çok daha temiz kod bir cehennem ile bitirmek olarak PropertyChanged.Fody kullanmak çok daha kolay, bkz - https://github.com/Fody/PropertyChanged
yapmanız gereken tek şey sınıfını yukarıya etiketlemek olduğunu
[ImplementPropertyChanged]
public class Person
{
public string GivenNames { get; set; }
public string FamilyName { get; set; }
public string FullName
{
get
{
return string.Format("{0} {1}", GivenNames, FamilyName);
}
}
}
Ve yapı sonra o kadar dönüştürülmüştür alır: zaten sihirli dize Soruna alternatifi vardır
public class Person : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
string givenNames;
public string GivenNames
{
get { return givenNames; }
set
{
if (value != givenNames)
{
givenNames = value;
OnPropertyChanged("GivenNames");
OnPropertyChanged("FullName");
}
}
}
string familyName;
public string FamilyName
{
get { return familyName; }
set
{
if (value != familyName)
{
familyName = value;
OnPropertyChanged("FamilyName");
OnPropertyChanged("FullName");
}
}
}
public string FullName
{
get
{
return string.Format("{0} {1}", GivenNames, FamilyName);
}
}
public virtual void OnPropertyChanged(string propertyName)
{
var propertyChanged = PropertyChanged;
if (propertyChanged != null)
{
propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
ImplementPropertyChanged
özniteliği ile lem, sadece bilirsin. Her ne kadar '' isim '' bunu resmileştirmeli. –Hayır, bunu hiç bir zaman işaret etmedim. Sadece, bugün çözebileceğin bir şeyi çözmek için henüz piyasaya sürülmemiş bir şeyi bekliyor olman için seni bilgilendiriyordum. Bu soru sadece sizin yararınıza olduğu için * diğer * ziyaretçiler için de yararlıdır. –
Bilgi için teşekkürler. – Mehrad