Re[3]: биндинг перечитывает все свойства
От: Codechanger Россия  
Дата: 05.02.10 13:11
Оценка: +1
Здравствуйте, saneman1, Вы писали:


S>
S>  public partial class Form1 : Form
S>  {
S>    private BindingSource bindingSource1 = new BindingSource();
S>    private TestDataObject test1 = null;

S>    public Form1()
S>    {
S>      InitializeComponent();
S>      test1 = new TestDataObject { Prop1 = 1, Prop2 = 2 };
S>      Bind(); //после этого текстбоксы как и ожидалось корректно показывают данные, 1 и 2 соответственно
S>    }

S>    private void Bind()
S>    {
S>      bindingSource1.DataSource = test1;
S>      textBox1.DataBindings.Add("Text", bindingSource1, "Prop1", true);
S>      textBox2.DataBindings.Add("Text", bindingSource1, "Prop2", true);
S>    }

S>    class TestDataObject : INotifyPropertyChanged
S>    {
S>      private int? _prop1;
S>      public int? Prop1
S>      {
S>        get { return _prop1; }
S>        set
S>        {
S>          //когда из текстбокс1 присваивается сюда "магическое" число 5,
S>          // ( после перехода с него табом на другой контрол ( не текстбокс2) 
S>          // то текстбокс2 сразу же отображает 6 (хотя свойство2 не менялось и события об его изменении не было)
S>          // как  показало хождение под отладкой, после генерации события об изменении свойства1, мы попадаем в
S>          // получение заначения свойства2 ?????
S>          if (value == 5)
S>            _prop2 = 6;


S>          //когда из текстбокс1 присваивается сюда "магическое" число 6,
S>          // ( после перехода с него табом на другой контрол ( не текстбокс2) 
S>          // то текстбокс1 не отображает реально присвоенное значение 7 (хотя событие об его изменении сгенерилось)
S>          // как  показало хождение под отладкой, после генерации события об изменении свойства1, мы Не попадаем в
S>          // получение заначения свойства1 ????
S>          if (value == 6)
S>            value = 7;

S>          _prop1 = value;
S>          FirePropertyChanged("Prop1");
S>        }
S>      }

S>      int? _prop2;
S>      public int? Prop2
S>      { 
S>        get { return _prop2; }
S>        set 
S>        {
S>          _prop2 = value;
S>          FirePropertyChanged("Prop2");
S>        }
S>      }

S>      void FirePropertyChanged(string propName)
S>      {
S>        if (PropertyChanged != null)
S>          PropertyChanged(this, new PropertyChangedEventArgs(propName));
S>      }

S>      public event PropertyChangedEventHandler PropertyChanged; 
S>    }
S>  }
S>



S>какие мысли у уважаемой общественности по поводу этого безобразия ? ...


Код написан безобразно, какие уж тут мысли
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.