Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Синхронизация дочернего грида


Автор: belka0107 14.10.2013, 21:31
Сделала по аналогии с msdn синхронизацию двух гридов, отношение master-detail.
Код

dgv.DataSource = masterBindingSource;
                    dgv2.DataSource = detailsBindingSource;

                    DataSet data = new DataSet();
                    data.Locale = System.Globalization.CultureInfo.InvariantCulture;

                    sa = new SqlDataAdapter("SELECT r.id, r.name, r.date FROM receipt AS r", c);
                    sa.Fill(data, "Receipt");

                    dsa = new SqlDataAdapter("SELECT r.id, r.receipt_id, r.material_id, m.name, r.weight FROM receipt_material AS r "
                    +"LEFT OUTER JOIN Material AS m ON m.id = r.material_id", c);
                    dsa.Fill(data, "Receipt_material");

                    DataRelation relation = new DataRelation("ReceiptMaterial",
                        data.Tables["Receipt"].Columns["id"],
                        data.Tables["Receipt_material"].Columns["receipt_id"]);
                    data.Relations.Add(relation);

                    masterBindingSource.DataSource = data;
                    masterBindingSource.DataMember = "Receipt";

                    detailsBindingSource.DataSource = masterBindingSource;
                    detailsBindingSource.DataMember = "ReceiptMaterial";


В принципе работает, почти всегда, кроме случая с вызовом контекстного меню по правой кнопке мыши, тогда в деталях остаются детали, от прошлой выбранной записи. Это лечится?

Автор: jonie 15.10.2013, 11:23
Цитата(belka0107 @  14.10.2013,  22:31 Найти цитируемый пост)
кроме случая с вызовом контекстного меню по правой кнопке мыши

вызывается-то для какого элемента ? Вообще поподробнее процесс опишите когда "неправильно" работает

Автор: belka0107 15.10.2013, 19:24
Цитата(jonie @ 15.10.2013,  11:23)
Цитата(belka0107 @  14.10.2013,  22:31 Найти цитируемый пост)
кроме случая с вызовом контекстного меню по правой кнопке мыши

вызывается-то для какого элемента ? Вообще поподробнее процесс опишите когда "неправильно" работает

Странная ситуация стоит задать вопрос и понимаю в чем проблема.
Почему-то при нажатии правой кнопкой мыши на строке не устанавливается CurrentCell, добавила установку из кода.

Спасибо тем кто подумал над моей проблемой smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)