2010-07-04 7 views
0

je l'habitude d'avoir le code suivant à l'aide d'un listview:WPF sélection DataGrid changé

private void ListViewSelectionChanged(object sender, SelectionChangedEventArgs e) 
     { 
      foreach (Exam exam in e.RemovedItems) 
      { 
       ViewModel.SelectedExams.Remove(exam); 
      } 
      foreach (Exam exam in e.AddedItems) 
      { 
       ViewModel.SelectedExams.Add(exam); 
      } 
     } 

Maintenant, je changé à un DataGrid mais je reçois un message d'erreur qui dit: Erreur 1 « System.EventArgs » ne ne contient pas une définition pour « RemovedItems » et pas de méthode « RemovedItems » extension accepter un premier argument de type « System.EventArgs » pourrait être trouvée (vous manque une directive à l'aide ou une référence d'assemblage?)

private void DataGridSelectionChanged(object sender, EventArgs e) 
    { 
     foreach (Exam exam in e.RemovedItems) 
     { 
      ViewModel.SelectedExams.Remove(exam); 
     } 
     foreach (Exam exam in e.AddedItems) 
     { 
      ViewModel.SelectedExams.Add(exam); 
     } 
    } 

Pouvez quelqu'un là-bas m'aide en me disant comment je peux capturer les lignes sélectionnées dans une grille de données de la même manière que j'ai utilisé pour les capturer dans une liste.

Répondre

1

L'événement SelectionChanged du DataGrid accepte SelectionChangedEventArgs comme argument (le même que pour le SelectionChanged cas de ListView), et non la base EventArgs:

private void DataGridSelectionChanged(object sender, SelectionChangedEventArgs e) 

ici e.RemovedItems et e.AddedItems sont disponibles.