Си диез / Говнокод #11557 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
private void LettersOnChanged(object sender, EventArgs eventArgs)
        {
            this._lettersBinding.Clear();
            this._lettersBinding.AddRange(this._letters);

            this.MailAgentGridControl.ResetBindings();
            this.MailAgentGridControl.RefreshDataSource();
            _bindingSourceLetters.ResetCurrentItem();
            _bindingSourceLetters.ResetBindings(false);

            int pos = _bindingSourceLetters.Position;

            this.MailAgentGridControl.DataSource = null;
            this.MailAgentGridControl.DataSource = _bindingSourceLetters;

            if (_bindingSourceLetters.Current == null)
            {
                _guiCtrl.CurrentLetter = null;
                return;
            }

            if (pos > _bindingSourceLetters.Count - 1)
                pos = _bindingSourceLetters.Count - 1;

            if (pos < 0)
                return;

            _bindingSourceLetters.Position = pos;

            MailAgentGridControlTableView.UnselectRow(MailAgentGridControlTableView.GetRowHandle(0));
            MailAgentGridControlTableView.SelectRow(pos);
        }

Все ради того,чтоб при изменении датабинда в гриде менялась строка выделения.

Запостил: partizan partizan, (Updated )

Комментарии (3) RSS

  • this.MailAgentGridControl.DataSource = null;
    this.MailAgentGridControl.DataSource = _bindingSourceLetters;
    А вот это, кхм, подёргивание, оно действительно необходимо?
    Ответить
    • Если DataSource - это свойство, и нужно удостовериться что сеттер отработал (там же обычно стоит проверка типа if newvalue!=oldvalue)...
      Все равно говно, впрочем.
      Ответить
      • > и нужно удостовериться что сеттер отработал
        Куда он денется. Сеттер то вызовется в любом случае. А вот если ради того, чтобы он что-то сделал, приходится обходить его внутреннюю проверку такими подергиваниями... то это говносеттер. По идее если датасорс не изменился - то зачем его дергать, он и так в правильном состоянии.
        Ответить

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8