【发布时间】:2017-03-25 16:34:59
【问题描述】:
我用 C# 编写代码,在 DataGridView 中显示 List 的值:
我有这个清单:
List<Order> list = new List<Order> { new Order("Fettina ai Ferri", ""), new Order("1 X", "0.99") };
此列表显示在 datagridview (ordersDtaGrid) 中:
var source = new BindingSource();
source.DataSource = list;
ordersDtaGrid.DataSource = source;
有效。
现在我更改列表中的一个值:
list[1].name = "4 X"
我想更新数据网格:
var source = new BindingSource();
source.DataSource = list;
ordersDtaGrid.DataSource = source;
这是数据网格中的结果:
既有旧值又有新值。
我也尝试添加:
ordersDtaGrid.Refresh();
ordersDtaGrid.Focus();
但没什么。
我该如何解决这个问题。
谢谢。
【问题讨论】:
-
你是用
DataGridVIew还是DataGrid控制?它们是不同的控件,其中DataGridView是较新的控件。有没有一些自定义的绘图方法 -
如果你让
Order类实现INotifyPropertyChanged接口而不是List将使用BindingList<Order>- 那么你不需要在每次更新某些属性时“重置”数据源。BindingList将引发一个事件,DataGridView将监听它并自动更新视图 -
我正在使用 DataGridView。
-
它正在使用新值进行更新,但旧值仍然隐藏。在图中,请参见“4 X”而不是“1 X”。也许datagridview没有升级单元格内容。
-
如果我双击单元格,它会显示正确的值。
标签: c# datagridview datagrid