Je joue avec la liaison de données et j'ai remarqué que le format de liaison est appelé deux fois lors du chargement du formulaire dans le code ci-dessous. Je pensais que cela ne se produirait qu'une seule fois lorsque la propriété TextBoxText de la classe de test serait liée à textbox1. Est-ce normal? Si non, alors que puis-je faire pour l'empêcher? Notez que lorsque j'appuie sur button1 et qu'il modifie la propriété TextBoxText de la classe de test, l'événement de format se déclenche une fois comme prévu.Pourquoi l'événement Format de liaison est-il appelé deux fois?
public partial class Form1 : Form
{
Test _test = new Test();
public Form1()
{
InitializeComponent();
Binding binding = new Binding("Text", _test, "TextBoxText");
binding.Format += new ConvertEventHandler(Binding_Format);
this.textBox1.DataBindings.Add(binding);
}
private void Binding_Format(object sender, ConvertEventArgs e)
{
Debug.WriteLine("Format");
}
private void button1_Click(object sender, EventArgs e)
{
_test.TextBoxText = "test1";
}
}
class Test : INotifyPropertyChanged
{
private string _text;
public string TextBoxText
{
get { return _text; }
set
{
_text = value;
OnPropertyChanged(new PropertyChangedEventArgs("TextBoxText"));
}
}
private void OnPropertyChanged(PropertyChangedEventArgs e)
{
PropertyChanged(this, e);
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion