2

Entity Frameworkモデルを介してデータベースからWPFデータグリッドにデータを取得する単純なC#WPFアプリケーションがあります。データベースから WPF DataGrid への方向では、すべて正常に動作します。

私の問題は、データグリッドからデータベースへの反対方向です。セルの更新ごとにデータベースを更新したいので、CellEditEndingイベントで作業します。

以下のコードは例外をスローしませんが、WPF データグリッド セルの変更はデータベースに保存されません (DGISPRSDataView私の WPF データグリッドです)。

どこに問題があるのか​​教えてください。私は何が欠けていますか?データグリッドの変更をデータ モデルとデータベースに接続するにはどうすればよいですか? または、Silverlight の場合と同様に、サーバーからのコールバックがありますか (エンティティ モデル + DomainContext クラス)

どうもありがとう!

private void DGISPRSDataView_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
   try
   {
      ReviewsEntities dataEntity = new RreviewsEntities(); //DataContext
      this.DGISPRSDataView.DataContext = dataEntity.Form_output_test;
      dataEntity.SaveChanges();

      MessageBox.Show("Update succesfully end");
   }
   catch (Exception err)
   {
      MessageBox.Show(err.ToString());
   }
}
4

1 に答える 1

1

コンテキスト内の DBSet の 1 つにデータをロードしてみてください。コンテキストには、維持するクラスごとに DBSet が必要であり、グリッドにはデータソースとしてそれらの 1 つが必要です。

例えばロード時

        var dset = Db.Tasks;
        DbSet<Task> qry = dset;
        qry.Load();
        bindingSource1.DataSource  =dset.Local.ToBindingList();

保存時

        bindingSource1.EndEdit();
        Db.SaveChanges();
于 2013-08-14T23:54:41.510 に答える