2017-09-08 3 views

Répondre

2

Liez vos données sur une collection observable. Et supprimez-le simplement de votre collection.

var myData = new ObservableCollection<User>(FormOfAddData.MyList); 
dataGrid.ItemsSource = myData; 

private void OnButtonClick(){ 
    User user = dataGrid.SelectedItem as User; 
    if(user != null){ 
    myData.Remove(user); 
    } 
} 
-1

Vous pouvez utiliser quelque chose comme:

private void DeleteSelectedRows_Click(object sender, EventArgs e) 
{ 
    foreach (DataGridViewRow row in dataGrid.SelectedRows) 
    { 
     dataGrid.Rows.RemoveAt(row.Index); 
    } 
} 
0
if (datagrid1.SelectedItem != null) 
{ 
    datagrid1.Items.Remove((BindingData)datagrid1.SelectedItem); 
} 
+0

Vous ne pouvez pas supprimer un élément de la collection Items lorsque vous avez défini la propriété ItemsSource. – mm8

0

Si vous utilisez un ObservableCollection au lieu d'un List tel que suggéré par @Tobias Theel:

dataGrid.ItemsSource = new System.Collections.ObjectModel.ObservableCollection<User>(FormOfAddData.MyList); 

..vous peut supprimer l'élément sélectionné de la collection source comme suit.

XAML:

<Button Content="Delete" Click="Button_Click_1" /> 

code:

private void Button_Click_1(object sender, RoutedEventArgs e) 
{ 
    User user = dataGrid.SelectedItem as User; 
    if (user != null) 
    { 
     IList<User> users = dataGrid.ItemsSource as IList<User>; 
     if (users != null) 
      users.Remove(user); 
    } 
} 

Si vous continuez à utiliser un List<User>, vous devrez réinitialiser la propriété ItemsSource:

private void Button_Click_1(object sender, RoutedEventArgs e) 
{ 
    User user = dataGrid.SelectedItem as User; 
    if (user != null) 
    { 
     IList<User> users = dataGrid.ItemsSource as IList<User>; 
     if (users != null) 
      users.Remove(user); 
     dataGrid.ItemsSource = null; 
     dataGrid.ItemsSource = users; 
    } 
}