DataGridView - kolorowanie wiersza na podstawie komórki

0

mam dataGridView na formie i podbindowany dataSet, który przy ładowaniu formy wypełnia dataGridView wartościami. dataSet składa się z 4 kolumn, z których jedna typu int na dataGridView jest ukryta (visible = false) i teraz w zależności od wartości tej komórki chciałem pokolorować wiersz. W google znalazłem funkcję i przerobiłem ją do swoich potrzeb:

        private void UpdateStatusColor(DataGridView dgv)
        {
            foreach(DataGridViewRow dgvr in dgv.Rows)
            {
                if (Convert.ToInt32(dgvr.Cells["dataGridColumnStatus"].Value) == 1)
                {
                    dgvr.DefaultCellStyle.BackColor = Color.FromArgb(192, 255, 192);
                }
                else if (Convert.ToInt32(dgvr.Cells["dataGridColumnStatus"].Value) == 0)
                {
                    dgvr.DefaultCellStyle.BackColor = Color.FromArgb(255, 192, 192);
                }
            }
        }

        public void UpdatestatusColor()
        {
            this.UpdateStatusColor(this.dataGridView);
        }

na formie na której jest dataGridView wywołuję f-cje: this.UpdateStatusColor(this.dataGridView); a z innych form: UpdateStatusColor(); i działa fajnie ale nie testowałem tego jak będzie więcej jak 200 rekordów czy przypadkiem nie będzie zamulało. Chciałem się dowiedzieć czy istnieje jakaś inna metoda pokolorowanie wybranych wierszy dataGridView z zależności od wartości ukrytej komórki.

0

DGV jest w ogóle wolne dla dużych paczek danych, ale 200 wierszy to nie dużo, więc raczej nie powinno. Spróbuj sam randomem wygenerować 200+ wierszy i protestuj.

0

akurat robiłem coś podobnego i databind 1000 wierszy + analiza z kolorowaniem w mgnieniu oka u mnie przeszła.

1 użytkowników online, w tym zalogowanych: 0, gości: 1