C# C WPF数据网格按选定项目删除

C# C WPF数据网格按选定项目删除,c#,wpf,datagrid,C#,Wpf,Datagrid,我有一个datagrid,它在xaml中被定义为DataGridUsers。我想删除所选的值,但是我该怎么做呢 这是我的密码 private void BtnDelete_Click(object sender, RoutedEventArgs e) { if (DataGridUsers.SelectedItem == null) { MessageBox.Show("There is no selected rows!"

我有一个datagrid,它在xaml中被定义为DataGridUsers。我想删除所选的值,但是我该怎么做呢

这是我的密码

    private void BtnDelete_Click(object sender, RoutedEventArgs e)
    {
        if (DataGridUsers.SelectedItem == null)
        {
            MessageBox.Show("There is no selected rows!");// show a message here to inform
        }
        else
        {
            foreach (DataGrid item in DataGridUsers.SelectedItems)
            {
                DataGridUsers.Items.Remove(item);
            }
        }
    }
使用SelectedIndex

试试这个:

private void BtnDelete_Click(object sender, RoutedEventArgs e)
{
    if (DataGridUsers.SelectedItem == null)
    {
        MessageBox.Show("There is no selected rows!");// show a message here to inform
    }
    else
    {
        DataView dataView = DataGridUsers.ItemsSource as DataView;
        if (dataView != null)
        {
            for (int i = DataGridUsers.SelectedItems.Count - 1; i >= 0; i--)
            {
                DataRowView drv = DataGridUsers.SelectedItems[i] as DataRowView;
                if (drv != null)
                {
                    dataView.Table.Rows.Remove(drv.Row);
                }
            }
        }
    }
}

我想删除我在DataGrid中选择的值,但我似乎无法删除。每当我从网格中选择一个项目,然后单击按钮,就会出现以下错误:“无法将类型为“System.Data.DataRowView”的对象强制转换为类型为“System.Windows.Controls.DataGrid”。”,DataGrid不包含行的定义。仍然存在相同的错误,表示它不包含行rows@AubreyIvanApungan尝试DataGridUsers.Items.RemoveAtDataGridUsers.SelectedIndex;它没有红线,但当我单击按钮时,它显示“此错误”操作在ItemsSource使用时无效。改为使用ItemsControl.ItemsSource访问和修改元素。“进行谷歌搜索,您将看到答案
private void BtnDelete_Click(object sender, RoutedEventArgs e)
{
    if (DataGridUsers.SelectedItem == null)
    {
        MessageBox.Show("There is no selected rows!");// show a message here to inform
    }
    else
    {
        DataView dataView = DataGridUsers.ItemsSource as DataView;
        if (dataView != null)
        {
            for (int i = DataGridUsers.SelectedItems.Count - 1; i >= 0; i--)
            {
                DataRowView drv = DataGridUsers.SelectedItems[i] as DataRowView;
                if (drv != null)
                {
                    dataView.Table.Rows.Remove(drv.Row);
                }
            }
        }
    }
}