で働いていC#
WPF
ます。わかりましたので、私のプロジェクトで にdatagrid
バインドされている があります。entity framework
表示される値を更新するとき、データグリッドは素晴らしい機能を果たします。database
変更を使用 にプッシュするMyDataEntity.SaveChanges()
と、すべてが完全に機能します。
新しい行を追加するときに問題が発生します。XAML で設定CanUserAddRows="True"
したので、ユーザーは新しい行を追加できます。新しい行をデータベースに保存する必要があるときに問題が発生します。何らかの理由で、SaveChanges()
呼び出しはデータベースを更新しません。私がやろうとしたことは、現在の行のすべての値を にプルしてからIList
、個々の値にアクセスしてMyDataEntities.Add()' on the
RowEditEnding` イベントを呼び出せるようにすることでしたが、それによって他の問題が発生しました。主に、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();
}
}