で働いていC# WPFます。わかりましたので、私のプロジェクトで にdatagridバインドされている があります。entity framework表示される値を更新するとき、データグリッドは素晴らしい機能を果たします。database変更を使用 にプッシュするMyDataEntity.SaveChanges()と、すべてが完全に機能します。
新しい行を追加するときに問題が発生します。XAML で設定CanUserAddRows="True"したので、ユーザーは新しい行を追加できます。新しい行をデータベースに保存する必要があるときに問題が発生します。何らかの理由で、SaveChanges()呼び出しはデータベースを更新しません。私がやろうとしたことは、現在の行のすべての値を にプルしてからIList、個々の値にアクセスしてMyDataEntities.Add()' on theRowEditEnding` イベントを呼び出せるようにすることでしたが、それによって他の問題が発生しました。主に、IList の個々の値にアクセスできません。リスト内のデータを見ると、そこにあります。見たことがありますが、何にも割り当てることができません。
本当に、私の問題は2つあります。
1: 新しく入力した行をデータベースに保存するにはどうすればよいですか
2: IList の値にアクセスするにはどうすればよいですか
2 の方が良い解決策です。この方法では、次のコードを使用してデータベースに追加の列を入力したり、データを他のメソッドに渡してデータベースの特定の列の値を取得したりできるからです。
private void DataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
IList rows = DataGrid.SelectedItems;
TableName tbl = new TableName
{
Name = rows[1].ToString(),
Qty = decimal.Parse(rows[4].ToString()),
Type = rows[6].ToString(),
TQty = ConvertQtoT(rows[4].ToString(), rows[6].ToString(),
OnLIst = true
};
MyDataEntity.TableNames.Add(tbl);
MyDataEntity.TableNames.SaveChanges();
}
}