Ich habe ein UserControl, das ein Textfeld, eine Schaltfläche und ein Tooltip-Steuerelemente auf es hat. Es implementiert INotifyPropertyChanged Ich habe versucht, die Text Eigenschaft und das Hinzufügen meiner eigenen Eigenschaft, aber in allen Fällen liest das Steuerelement aus der gebundenen Datenquelle gut, aber nie aktualisiert die Datenquelle. Meine Ereignisse werden ausgelöst, wenn der Text geändert wird. Einige der Code ist unten. Alle anderen Standardsteuerelemente funktionieren einwandfrei. Was muss ich tun, damit das Steuerelement die Datenquelle aktualisiert, wenn der Benutzer den Wert eingegeben oder geändert hat?
public partial class UrlControl : UserControl, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
[Bindable(true)]
[Browsable(true)]
public string Url
{
get
{
return url.Text;
}
set
{
if (value != url.Text)
{
url.Text = value;
OnPropertyChanged("Url");
}
}
}
protected virtual void OnPropertyChanged(string propertyName)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
if (PropertyChanged != null)
{
PropertyChanged(this, e);
}
}
Dies ist der Bindungscode aus dem Formular-Designer.
this.urlControl1.DataBindings.Add(new System.Windows.Forms.Binding("Url", this.customerBindingSource, "First", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));
}