Bonjour
J'ai un datagridView qui m'affiche une sélection d'éléments d'une datatable via un filtre sur dataRowView
Maintenant je souhaite modifier la priorité des row du datagridview pour 2 choses
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DataView dtvCapteurs = new DataView(maConfig.DataSetConfig.Tables["Capteurs"]); dtvCapteurs.RowFilter = "Idperiph = " + dataGridView1.Rows[2].Cells["Idperiph"].Value.ToString(); dtvCapteurs.Sort = "Priorité ASC";
-Toujours avoir la colonne "Priorité" sans doublons (10, 20,30,40,50,60...)
-Pouvoir remonter ou descendre des lignes dans le datagridView.
Problème : si je parcours mon datagridview pour recalculer chaque priorité, le tri déplace les lignes en cours de recalcul et du coup cela fausse le calcul
voici le code de recalcul des "Priorités"
ce code fonctionne en cas d'ajout d'une ligne mais va créer des inversions en cas de retrait de ligne (parce que la première ligne à se faire renommer va se déplacer et ainsi perdre son ordre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for (int i = dataGridViewCapteurs.Rows.Count; i >0; i--) { dataGridViewCapteurs.Rows[i-1].Cells["Priorité"].Value = i * 10 ; } maConfig.SauvegardeConfig();
Y a t-il un moyen de "figer" le datagrid view ? qu'il ne déplace pas les lignes en cours de recalcul des priorités ?
Merci par avance
Partager