Probleme sur la modification des donnees affichées par un datagrid a l execution,C#
bonjour a tous,
j ai un datatable Requete qui est initialiser a l execution par la lecture d une table.
Ce datatable devient datasource de mon datagrid, toujours a l execution. Mon datagrid contient une colonne checkBox, cette colonne affiche le contenu d'une colonne de mon datatable (colonne de type char(1) qui vaut 1 ou null).
A l affichage de mon datagrid, pas de probleme, si ma colonne vaut 1, la checkbox est cochee, sinon elle vaut null, la checkbox est decochee.
Mantenant, contrairement au fonctionnement normal du datagrid, je veux modifier la valeuir de ma checkbox par un simple clic sur celle ci. Et c est la que ca ne fonctionne pas. Voice mon code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
private void DTG_Requete_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
{
DataGrid.HitTestInfo hti = this.DTG_Requete.HitTest(e.X, e.Y);
try
{
if( hti.Type == DataGrid.HitTestType.Cell && hti.Column == myCheckBoxCol)
{
//this.DTG_Requete[hti.Row, myCheckBoxCol] = ! (bool) this.DTG_Requete[hti.Row, myCheckBoxCol];
Requete.Rows[hti.Row][myCheckBoxCol] = (this.Requete.Rows[hti.Row][myCheckBoxCol].ToString() == "1" ? "0":"1");
}
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
} |
La ligne en commentaire ne fonctionne pas, lorsque que l on clique deux fois de suite sur la meme case, j ai une erreur. Pour les autres cas, ca fonctionne.
La ligne du dessous fonctionne sauf dans le cas ou on clique deux fois de suite sur la meme case, la premiere fois, la valeur change, la deuxieme fois il ne se passe rien (si ce n est que en debut de ligne apparait le stylo a la place de la fleche) et la troisieme fois, la valeur change, on revient au fonctionnement normal d un double clic.
Je ne comprend pas, pouvez vous m aider.