Двустороннее связывание данных в winforms, Inotifypropertychanged реализовано в базовом классе
Я использую .Net 3.5, Winforms, Databinding
У меня есть производные классы, базовый класс реализует IPropertychanged
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName) {
var handler = this.PropertyChanged;
if (handler != null) {
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
Каждый набор настроек вызывает:
protected void SetField(ref T field, T value, string propertyName) {
if (!EqualityComparer.Default.Equals(field, value)) {
field = value;
IsDirty = true;
this.RaisePropertyChanged(propertyName);
}
}
Типичный Propertysetter:
public String LocalizationItemId {
get {
return _localizationItemId;
}
set {
SetField(ref _localizationItemId, value, "LocalizationItemId");
}
}
Способ, которым свойство связано с текстовым полем
private DerivedEntity derivedEntity
TextBoxDerivedEntity.DataBindings.Add("Text", derivedEntity, "Probenname");
Если я программно назначаю текст для текстового поля, текстовое поле не показывает его. Но я могу вручную редактировать текстовое поле.