我似乎在将弹出窗体上的编辑按钮上的更新信息返回到原始表单上的DataGridView
(绑定到对象列表)上时遇到了一些问题
我好像有一天工作了,但是,我今天又回来工作了,它似乎没有功能,我不知道这是不是因为我的逻辑存在缺陷,或者意外删除了某些内容。
我有两种形式。 Shopping Form.cs
和Popup.cs
。
Shopping Form.cs
在名为DataGridView
的{{1}}中显示一个购物篮,该购物篮与来自dataGridBasket
课程的单独List<OrderItem>OrderItems
绑定。这可以通过填写页面OrderItem
ProductName
和Quantity
上提供的文本框/ 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时,原始表单上的数据不会更改。
任何指针?
提前致谢。
答案 0 :(得分:1)
如果数据绑定项不包含通知属性更改事件,则用户界面(datagridview)将不知道任何更改。您必须手动触发刷新。整个网格或源或类似dataGridBasket.InvalidateRow(row.Index)