La modification d'un datagridview ligne de couleur au moment de l'exécution

Je suis hériter du contrôle DataGridView pour un contrôle, je suis en développement.
Mon objectif est de faire de chaque ligne de couleur représentant un État de l'objet qui peut changer lors de l'exécution.
Mon objet implémente l'Observables modèle de conception.
J'ai donc décidé de développer ma propre DataGridViewRow de classe, la mise en œuvre du pattern observer et de faire de mon rang observer l'objet.
Dans cette classe, j'ai cette méthode :

public void UpdateColors(int state)
{
    DefaultCellStyle.BackColor = m_ETBackColors[state];
    DefaultCellStyle.ForeColor = m_ETForeColors[state];
}

Je ne peux pas observer mon objet pour le moment, donc, pour tester le changement de couleur, je l'appelle mon UpdateColors méthode sur des lignes sélectionnées sur l'événement SelectionChanged.

Et c'est maintenant le moment il ne fonctionne pas!
Ma précédemment sélectionné lignes séjour bleu (comme quand ils ont été sélectionnés), les cellules, les textes sont en couches quand je scroll.
J'ai essayé d'appeler DataGridView.Refresh(), mais cela ne fonctionne pas non plus.

Je dois ajouter mon datagridview n'est pas lié à une source de données : je ne sais pas combien de colonnes que j'ai avant l'exécution, j'ai donc le nourrir à la main.

Quelqu'un peut-il me dire ce que je fais mal?

========== Mise à jour ==========

Cela fonctionne :

public void UpdateColors(int state)
{
    DefaultCellStyle.BackColor = System.Drawing.Color.Yellow;
    DefaultCellStyle.ForeColor = System.Drawing.Color.Black;
}

Mais cela ne fonctionne pas :

public void UpdateColors(int state)
{
    DefaultCellStyle.BackColor = m_ETBackColors[nEtattech];
    DefaultCellStyle.ForeColor = m_ETForeColors[nEtattech];
}

avec :

    System.Drawing.Color[] m_ETBackColors = new System.Drawing.Color[] { };
    System.Drawing.Color[] m_ETForeColors = new System.Drawing.Color[] { };

Il n'y a pas de débordement de tableau : ils sont les paramètres du constructeur.

InformationsquelleAutor Rifu | 2012-06-15