2017-09-08 1 views

Antwort

2

Binden Sie Ihre Daten in eine beobachtbare Sammlung. Und entfernen Sie es einfach aus Ihrer Sammlung.

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

Sie könnten etwas wie folgt verwenden;

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

Sie können ein Element die Items-Auflistung nicht entfernen, wenn Sie die ItemsSource-Eigenschaft festgelegt haben. – mm8

0

Wenn Sie eine ObservableCollection anstelle eines List wie von @Tobias Theel verwenden:

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

..you kann das ausgewählte Element aus der Quellauflistung wie folgt entfernen.

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); 
    } 
} 

Wenn Sie eine List<User> halten, werden Sie die ItemsSource Eigenschaft zurückgesetzt haben:

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; 
    } 
} 
Verwandte Themen