Это должно хорошо работать для чтения значений из источника данных.
Однако, когда дело доходит до записи значений в источник данных, похоже, что вы сохраняете и получаете значение Url
непосредственно из url
текстовое окно.Однако при изменении текста в пользовательском интерфейсе текстовое поле не отображается.Чтобы исправить это, добавьте в текстовое поле обработчик события TextChanged, который может просто вызвать:
void url_TextChanged(object sender, EventArgs e)
{
OnPropertyChanged("Url");
OnUrlChanged(); // See additional note below
}
В качестве стороны, хотя реализация INotifyPropertyChanged
должна работать ... Когда это произойдетк привязке Windows Forms вы также можете создать событие с именем свойства с суффиксом «Изменено», и привязка должна следить за тем, чтобы:
public event EventHandler UrlChanged;
protected virtual void OnUrlChanged()
{
var handler = UrlChanged;
if (handler != null)
{
handler(this, EventArgs.Empty);
}
}
[Bindable(true)]
[Browsable(true)]
public string Url
{
get
{
return url.Text;
}
set
{
if (value != url.Text)
{
url.Text = value;
OnPropertyChanged("Url");
OnUrlChanged();
}
}
}