verwende ich .NET 3.5, WinForms, DatabindingZwei-Wege-Datenbindung in WinForms implementiert INotifyPropertyChanged in Basisklasse
Ich habe Klassen abgeleitet, die Basisklasse implementiert IPropertychanged
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName) {
var handler = this.PropertyChanged;
if (handler != null) {
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
Jeder propertysetter ruft:
protected void SetField<T>(ref T field, T value, string propertyName) {
if (!EqualityComparer<T>.Default.Equals(field, value)) {
field = value;
IsDirty = true;
this.RaisePropertyChanged(propertyName);
}
}
Ein typisches Propertysetter:
public String LocalizationItemId {
get {
return _localizationItemId;
}
set {
SetField(ref _localizationItemId, value, "LocalizationItemId");
}
}
Die Art und Weise eine Eigenschaft auf eine Textbox
private DerivedEntity derivedEntity
TextBoxDerivedEntity.DataBindings.Add("Text", derivedEntity, "Probenname");
Wenn ich das Textfeld programmatisch Text zuweisen gebunden ist, wird das Textfeld zeigt es nicht. Aber ich kann das Textfeld manuell bearbeiten.
WinForms Databind, ich habe nie davon gehört, aber sicher im den Anfänger :) – Krekkon