LINQ DataGridView Удаление вставки не отображается - PullRequest
0 голосов
/ 15 февраля 2012

У меня проблема с моей DataGrid, связанной с выражением LINQ. На самом деле две DataGrid связаны с одной и той же таблицей SQL, используя один и тот же DataContext.

Когда я редактирую существующие строки в одной или другой сетке, изменения отражаются в другой сетке, и наоборот, как и ожидалось.

Но когда я вставляю запись или удаляю запись в одной сетке, изменения не отражаются в другой сетке. Это как новая строка в состоянии, когда мое выражение 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();
    }


}

1 Ответ

0 голосов
/ 19 марта 2012

Я нашел решение, которое хорошо работает.Первая сетка (dtgGrid) присоединяется к BindingSource, а привязывается к результату запроса LINQ.Затем вторая сетка (dtgFilteredGrid) присоединяется к другому BindindSource, который является результатом запроса LINQ, который фильтрует первый BindingSource.Затем, когда пользователь редактирует dtgFilterGrid, выполняется обновление вручную, чтобы поддерживать актуальность первого BindingSource.

...