Ich habe darragrid und ich möchte ausgewählte Zeile mit Taste. Wie kann ich es tun? DankeC# So entfernen Sie das ausgewählte Element aus dem Datagrid mit der Schaltfläche
dataGrid.ItemsSource = new List<User>(FormOfAddData.MyList);
Ich habe darragrid und ich möchte ausgewählte Zeile mit Taste. Wie kann ich es tun? DankeC# So entfernen Sie das ausgewählte Element aus dem Datagrid mit der Schaltfläche
dataGrid.ItemsSource = new List<User>(FormOfAddData.MyList);
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);
}
}
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);
}
}
if (datagrid1.SelectedItem != null)
{
datagrid1.Items.Remove((BindingData)datagrid1.SelectedItem);
}
Sie können ein Element die Items-Auflistung nicht entfernen, wenn Sie die ItemsSource-Eigenschaft festgelegt haben. – mm8
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;
}
}
FYI, der ganze downvot Dies ist auf den Mangel an wahrgenommener Arbeit zurückzuführen. Wenn Sie Hilfe benötigen, zeigen Sie einige Pseudo-Unit-Tests an – GoldBishop