从弹出窗体更新绑定到DataGridView的对象列表

时间:2015-06-22 13:43:25

标签: c# winforms datagridview

我似乎在将弹出窗体上的编辑按钮上的更新信息返回到原始表单上的DataGridView(绑定到对象列表)上时遇到了一些问题

我好像有一天工作了,但是,我今天又回来工作了,它似乎没有功能,我不知道这是不是因为我的逻辑存在缺陷,或者意外删除了某些内容。

我有两种形式。 Shopping Form.csPopup.cs

Shopping Form.cs在名为DataGridView的{​​{1}}中显示一个购物篮,该购物篮与来自dataGridBasket课程的单独List<OrderItem>OrderItems绑定。这可以通过填写页面OrderItem ProductNameQuantity上提供的文本框/ numericUpDowns,然后点击添加按钮LatestPrice来添加。它还可以通过单击“删除”按钮btnAdd来删除所选行中的数据。

以下是btnRemove

的代码
Shopping Form.cs

这是#region Edit button private void btnEdit_Click(object sender, EventArgs e) { DataGridViewRow row = dataGridBasket.CurrentRow; OrderItem oi = myBasket.OrderItems[dataGridBasket.SelectedRows[0].Index]; if (!row.IsNewRow) { DialogResult dialogresult; Popup form = new Popup(row); dialogresult = form.ShowDialog(); if (dialogresult == System.Windows.Forms.DialogResult.OK) { oi.ProductName = form.ProdName; oi.Quantity = Convert.ToInt32(form.QuantityE); oi.LatestPrice = form.LatPrice; } else if (dialogresult == System.Windows.Forms.DialogResult.Cancel) { form.Close(); } form.Dispose(); } }

Popup.cs

弹出窗口工作正常,字段中填充了所选行的信息,但是,当用户更新信息并按OK时,原始表单上的数据不会更改。

任何指针?

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果数据绑定项不包含通知属性更改事件,则用户界面(datagridview)将不知道任何更改。您必须手动触发刷新。整个网格或源或类似dataGridBasket.InvalidateRow(row.Index)

的内容