Эффект функции GridView SelectRow не виден

Я пытаюсь сделать все строки моего gridView выбранными (в конструкторе окна WinForms) с помощью следующего фрагмента кода:

        gridControl1.DataSource = myObj;
        gridControl1.ForceInitialize();

        for (int i = 0; i < gridView1.DataRowCount; i++)
        {
            if (((MyClass)gridView1.GetRow(i)).MyProperty)
                gridView1.SelectRow(i);
        }

В отладке я проверил, что gridView1.IsRowSelected() возвращает true для всех строк (после загрузки формы). Однако он не отображается (галочки не установлены). Что я делаю не так? Я пытался выполнить этот код при загрузке формы, но это не помогло.


person quarandoo    schedule 24.04.2018    source источник
comment
Имейте в виду, что выбрано не равно отмечено. Это означает, что строку можно выбрать, не проверяя ее. Выбранный обычно означает, что строка выделена (как если бы вы щелкнули по ней один раз), в то время как отмеченный означает, что флажок установлен (как если бы вы нажали на флажок).   -  person MetaColon    schedule 25.04.2018


Ответы (1)


Для свойства ColumnViewOptionsSelection.MultiSelect установлено значение true.

        try
        {
            gridView1.BeginUpdate();
            for (int i = 0; i < gridView1.DataRowCount; i++)
            {
                var rowhandle = gridView1.GetRowHandle(i);
                if (((MyClass)gridView1.GetRow(rowhandle)).MyProperty)
                    gridView1.SelectRow(rowhandle);
            }
        }
        finally
        {
            gridView1.EndUpdate();
        }

DataRowIndex и Rowhandle отличаются в devexpress.

person Baskar John    schedule 25.04.2018