Я играю с привязкой данных и заметил, что формат привязки вызывается дважды при загрузке формы в коде ниже.Я думал, что это произойдет только один раз, когда свойство TextBoxText тестового класса будет связано с textbox1.Это нормально?Если нет, то что я могу сделать, чтобы предотвратить это?Обратите внимание: когда я нажимаю кнопку button1, и она изменяет свойство TextBoxText тестового класса, событие форматирования запускается один раз, как и ожидалось.
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