从网格视图中删除行

本文关键字:删除行 视图 网格 | 更新日期: 2023-09-27 18:34:32

我有一个RadGridView .当用户单击某个row,然后单击"我的Delete"按钮时,我会调用一个方法从数据库中删除该行。但它在GridView上显示了此条目.我可以再次手动调用 LoadGridView() 方法以向用户显示该条目已被删除,但是否有任何其他内置方法也可以从 GridView 中删除该项?

下面是删除单击事件处理程序:

private void OnDeleteClick(object sender, RoutedEventArgs e)
{
    Product deleteProduct = new Product();
    foreach (Product product in this.grdProductGrid.SelectedItems)
    {
        deleteProduct = product;
    }
    if (deleteProduct != null)
    {
        _service.DeleteProductAsync(deleteProduct);
        this.grdProductGrid.SelectedItems.Clear();
    }
}

网格绑定:

List<Product> productList = new List<Product>();
this.grdProductGrid.ItemsSource = productList;

从网格视图中删除行

由于您使用List作为源,因此需要从列表中删除该项目并手动强制刷新RadGridView;

// Temporarily store the ItemSource as a List in tmp
List tmp = (List)this.grdProductGrid.ItemsSource; 
// Remove the item from the List
tmp.Remove(deleteP‌​roduct); 
// Force a refresh by "tricking" RadGridView 
// that it's getting an entirely new ItemsSource
this.grdProductGrid.ItemsSource = null; 
this.grdProductGrid.ItemsSource = tmp;