我仍处于 WPF、EF 和 MVVM 的学习阶段,现在我遇到了以下问题。我可以在我的 DataGridView 中删除和插入新项目,但我不知道如何更新我的项目。
我所做的就是选择一个已经有主键的空行,然后将数据放入其中。它正在工作(更新数据库),但 GridView 没有刷新。我需要先重新启动程序才能看到我更新的数据。
我的执行命令来更新我的数据库。我在 ViewModel 类
public void ExecuteUpdate(object obj)
{
try
{
SelectedIndex.Child_Update(new Farbe { FarbauswahlNr = SelectedIndex.FarbauswahlNr, Kurztext = SelectedIndex.Kurztext, Ressource = SelectedIndex.Ressource, Vari1 = SelectedIndex.Vari1, Vari2 = SelectedIndex.Vari2 });
//ListeAktualisieren --> Refreshing the List
ListeAktualisieren();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
}
这是我应该刷新 GridView 的刷新方法。我在 ViewModel 类
public void ListeAktualisieren()
{
farbliste.ListeAktualisieren(db);
farbliste.Model = farbliste.Model.Concat(farbliste.Addlist).ToList();
Model = farbliste.Model;
farbliste.Addlist.Clear();
}
该方法正在调用我的业务列表,该列表也有一个刷新方法。在这里从我的数据库中读取。我在 Business List 课程中
public void ListeAktualisieren(TestDBEntities db)
{
Model.Clear();
foreach (var item in db.Farben)
{
//Insert and delete working
add = new Farbe { FarbauswahlNr = item.FarbauswahlNr, Kurztext = item.Kurztext, Ressource = item.Ressource, Vari1 = Convert.ToBoolean(item.Var1), Vari2 = item.Vari2 };
Addlist.Add(add);
}
}
模型是我的 GridView 的源,它在更新时不刷新更改的数据,但在插入或删除时显示新的数据行。