Ich schlage vor, Sie die Bindung andere Weise zu verwenden.
label.DataBindings.Add(new Binding("Text", test, "Name", false, DataSourceUpdateMode.OnPropertyChanged));
Ich hoffe, das funktioniert für Sie!
Ein anderer Weg ist die Klasse zu aktualisieren Wert verwenden geändert Ereignisse,
class Test
{
private string name;
public string Name
{
get { return name; }
set
{
//Check if you are assigning the same value
if (Equals(name, value))
return;
name = value;
OnNameChanged();
}
public event EventHandler NameChanged;
protected virtual void OnNameChanged()
{
var handler = NameChanged;
if (handler != null)
handler(this, EventArgs.Empty);
}
}
}
Falls die erste nicht funktioniert.
Die beste Lösung ist es generische Art und Weise zu tun,
class Test : INotifyPropertyChanged
{
private string name = "";
public string Name
{
get { return name; }
set { name = value; NotifyPropertyChanged(); }
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged()
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("Name"));
}
}
}
Ihre Klasse hat die INotifyPropertyChanged-Schnittstelle zu implementieren. – LarsTech
[Überprüfen Sie die MSDN-Seite] (https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged (v = vs.110) .aspx) auf INotifyPropertyChanged Schnittstelle – Steve