LINQ式にバインドされたDataGridに問題があります。実際、同じDataContextを使用して、2つのDataGridを同じSQLテーブルにバインドしました。
一方または他方のグリッドの既存の行を編集すると、予想どおり、変更はもう一方のグリッドに反映され、その逆も同様です。
しかし、一方のグリッドでレコードを挿入または削除すると、変更はもう一方のグリッドに反映されません。これは、新しい行が、私のLINQ式がこれらのタイプの変更を行わない状態にあるようなものです。
他のグリッドが変更を「見る」前に、変更をデータベースに保存する必要があります。
とにかく、両方のLINQ結果オブジェクトに行の挿入/行の削除の変更を通知できますか?
これが私のコードです:
public partial class Form1 : Form
{
GMR_DEVEntities CTX;
public Form1()
{
InitializeComponent();
CTX = new GMR_DEVEntities();
dataGridView1.AutoGenerateColumns = true;
dataGridView2.AutoGenerateColumns = true;
this.dataGridView1.Columns.Clear();
this.dataGridView2.Columns.Clear();
}
private void btnLoadGrid1_Click(object sender, EventArgs e)
{
var Data = from dd in CTX.tblConfigs select dd;
this.dataGridView1.DataSource = Data;
}
private void btnLoadGrid2_Click(object sender, EventArgs e)
{
var Data = from dd in CTX.tblConfigs select dd;
this.dataGridView2.DataSource = Data;
}
private void btnSave_Click(object sender, EventArgs e)
{
CTX.SaveChanges();
}
}