2010-03-28 4 views
0

problème, c'est que chaque fois que la ligne de la grille est cliquée à droite l'élément sélectionné est null.how est-ce que je fais une ligne de la grille sélectionnée quand une ligne a été cliquée?clic droit sur la ligne de la grille

grâce Jamal

+0

Silverlight 4? Vous parlez de DataGrid? – AnthonyWJones

+0

oui offcoarse. –

Répondre

1

Je pense que la solution peut avoir un problème. Chaque fois qu'une ligne est chargée, elle ajoute un gestionnaire d'événements, donc si la ligne est réutilisée, elle peut accumuler des gestionnaires d'événements. Je recommande de supprimer le gestionnaire d'événements lorsque la ligne est déchargée. Voici mon code suggéré:

private void dg_LoadingRow(object sender, DataGridRowEventArgs e) 
{ 
    e.Row.MouseRightButtonDown += new MouseButtonEventHandler(Row_MouseRightButtonDown); 
} 
void Row_MouseRightButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    dg.SelectedItem = ((sender) as DataGridRow).DataContext; 
} 
// new portion 
private void dg_UnloadingRow(object sender, DataGridRowEventArgs e) 
{ 
    e.Row.MouseRightButtonDown -= new MouseButtonEventHandler(Row_MouseRightButtonDown); 
} 
Questions connexes