2009-11-29 5 views
0

Je suis un débutant avec C# donc j'ai fait une petite application, pour comprendre comment travailler avec Linq et la base de données en C#.DataGridView Row Cliquez pour Linq Object

Ce que je suis en train de faire est dans un DataGridView quand quelqu'un clique sur une ligne contenant quelques données que je veux aller de e.RowIndex à un objet Linq des données de cette ligne, ma tentative impliquait l'utilisation de la DataBoundItem.

Mais pour une raison quelconque, la variable currentAd dans ce code me donne toujours une valeur nulle.

private void clickRow(object sender, DataGridViewCellEventArgs e) 
    { 
     richTextBox1.Text = "There is a clickRow event with row index " + e.RowIndex; 
     Ad currentAd = adsDataGridView.Rows[e.RowIndex].DataBoundItem as Ad; 
     if (currentAd != null) // The problem is it is always null 
     { 
      MessageBox.Show(currentAd.ToString()); 
     } 
    } 

Merci pour votre aide.

Répondre

1

En the examples given on the MSDN site, ils jetèrent la ligne à un objet DataGridViewRow d'abord, avant de prendre la DataBoundItem, vous pourriez vouloir essayer cette façon:

private void clickRow(object sender, DataGridViewCellEventArgs e) 
    { 
     richTextBox1.Text = "There is a clickRow event with row index " + e.RowIndex; 
     DataGridViewRow row = adsDataGridView.Rows[e.RowIndex] as DataGridViewRow; 
     Ad currentAd = row.DataBoundItem as Ad; 
     if (currentAd != null) 
     { 
      MessageBox.Show(currentAd.ToString()); 
     } 
    } 
+0

Oui, je regardais là-bas et je cherchais à jouer avec ça et ça ne fonctionnait toujours pas. Je l'ai essayé et il donnait encore null. –

+0

Il semblerait alors que votre distribution à 'Ad' échoue. –

Questions connexes