私はまだ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();
}
このメソッドは、Refreshメソッドも取得したビジネスリストを呼び出しています。ここで私のデータベースから読んでいます。私はビジネスリストクラスにいます
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のソースであり、更新時に変更されたデータを更新していませんが、挿入または削除時に新しいデータ行を表示しています。