我有一个WPF c#数据网格,我可以通过一个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为空。我怎么解决这个问题?
http://msdn.microsoft.com/en-us/library/cscsdfbt(v=VS.100).aspx
操作符类似于强制转换操作。但是,如果转换不是可能,因为返回null而不是引发异常。
你想用objSendToEdit = dgEmp.SelectedItem as Sender;
做什么?
这是因为过滤器必须清除所选内容,从而使objSendToEdit
为空。
你应该在过滤后立即重新选择objSendToEdit
回到数据网格。
objSendToEdit = dgEmp.SelectedItem;
//// filter code
dgEmp.SelectedItem = objSendToEdit;
如果有帮助请告诉我