【发布时间】:2017-12-12 15:46:45
【问题描述】:
我有两个窗口 wpf。 在第一个窗口我看到来自 DataGrid 的数据,在第二个窗口我从数据库中删除对象。
第一个窗口:
private void mnRemoveProduct_Click(object sender, RoutedEventArgs e)
{
RemoveProduct window = new RemoveProduct();
window.ShowDialog();
ShowWatchTable();
} // mnRemoveProduct_Click
第二个窗口:
private void btnDelete_Click(object sender, RoutedEventArgs e)
{
if (cmbNameOfWatch.SelectedIndex > 0)
{
var value =
(from watch in obj.Watch.Where(w => w.mark == cmbNameOfWatch.SelectedValue.ToString())
select new { watch.id }).ToArray().First();
Watch watchObj = obj.Watch.Find(value.id);
obj.Watch.Remove(watchObj);
obj.SaveChanges();
this.Close();
}
} // btnDelete_Click
和函数ShowTable
public void ShowWatchTable()
{
obj.Watch.ToList();
dataGrid.ItemsSource =
from watch in obj.Watch.Local
select new
{
ID = watch.id,
Brand = watch.mark,
Typ = watch.TypeWatch.typeName,
Price = watch.price + " $".ToString(),
Quantity = watch.number,
Fabricator = watch.Fabricator.fName,
Country = watch.Fabricator.Country.countryName
};
}
当我从数据库中删除值时,我仍然在 DataGrid 中看到这个值。只有当我关闭并打开此表单时,我才不再看到此对象。当我添加一个元素时,使用相同的逻辑。 Datagrid 使用 ShowTable 函数进行了更新,我看到了更新的数据库。但是删除时它不起作用。请帮忙
【问题讨论】: