확인란이있는 DataGridView 열이 있습니다. 선택/선택 취소 버튼을 만들려고합니다. 값을 변경하기위한 코드는 쉽지만 성능은 끔찍합니다.DataGridView 확인란 열 "모두 선택"성능
for (int i = 0; i < dgv.RowCount; i++)
{
dgv.Rows[i].Cells["Selected"].Value = _selectAll;
}
_selectAll은 단순히 토글 bool 변수입니다. 성능이 빠른 곳에서이 작업을 수행하는 더 좋은 방법이 있습니까? 기본 DataTable의 값을 변경하려고 시도했습니다. 단지 몇백 개의 행에 대해 몇 초가 걸리지 만 대부분의 작업은 수천 개의 행에서 수행됩니다.
EDIT & 용액 (2011년 10월 4일)
주요 문제는 DGV 특성이었다. 설정 한 후에는
dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
성능이 크게 향상되었습니다 (MSDN DataGridView Performance). 이 편집에서 제안 된 솔루션은 성능을 약간 향상시킵니다.
이름 대신 색인으로 열을 액세스 해보십시오. 예 : 'dgv.Rows [i] .Cells [1] .Value = _selectAll;' –
어떤 속성에 대해서도 바운드가되어 있습니까? –
병 목이있는 곳이 확실합니까? 나는 그것이 다른 곳에 있다고 생각한다. –