1. C# / Говнокод #11557

    +134

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    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, 09 Августа 2012

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

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

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