过滤后编辑wpf datagrid行

时间:2011-09-04 17:00:15

标签: c# .net wpf visual-studio-2010 datagrid

我有一个WPF C#datagrid,我可以使用SqlDataAdapter过滤它并使用ItemsSource属性显示它。

我也可以在过滤之前更新/删除行,但不能在之后更新/删除。

diamedbEntities objContext;
Sender objSendToEdit;

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    objContext = new diamedbEntities();
    dgEmp.ItemsSource = objContext.Senders;
}

private void dgEmp_SelectionChanged(object sender, SelectionChangedEventArgs e)
{       
    objSendToEdit = dgEmp.SelectedItem as Sender;
}

private void btnDelete_Click(object sender, RoutedEventArgs e)
{
    if (objSendToEdit == null)
    {
        MessageBox.Show("Cannot delete the blank Entry");
    }
    else
    {
        objContext.DeleteObject(objSendToEdit);
        objContext.SaveChanges();
        MessageBox.Show("Record Deleted..");
    }
}

过滤后objSendToEdit为null。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

http://msdn.microsoft.com/en-us/library/cscsdfbt(v=VS.100).aspx

  

as   运算符就像一个强制转换操作。但是,如果转换不是   可能,因为返回null而不是引发异常。

您要对objSendToEdit = dgEmp.SelectedItem as Sender;做什么?

答案 1 :(得分:0)

这是因为过滤器必须清除选择因此使objSendToEdit为空。

过滤后,您应立即重新选择objSendToEdit回数据网格。

  objSendToEdit = dgEmp.SelectedItem;
  //// filter code
  dgEmp.SelectedItem = objSendToEdit;

如果有帮助,请告诉我。