用DataTable做DataGridView的数据源时
DataGridView内做的增、删、改都可以通过DataTable.Select(String, String, DataViewRowState) 方法得到修改的行。
如果用List<T>来做DataGridView的数据源,当DataGridView内的数据被编辑后,是否也可以实现或通过别的组件搭配使用实现类似的操作记录?
------解决思路----------------------
不能
不仅无法得到被修改的list内容
而且如果list内容在外部被修改,也不会通知DataGridView刷新数据
------解决思路----------------------
各有各的用处,不能说哪一种就更好
实体类是强类型,DataTable是弱类型,会产生装箱拆箱的问题,而且弱类型对于团队合作很不利,别人不仔细看你的代码逻辑都不知道里面打底放了啥玩意,你自己时间长了可能也不记得里面到底放了啥玩意,到底有几列,都是什么类型
------解决思路----------------------
让类继承自 INotifyPropertyChanged 接口,并实现PropertyChanged方法。
例如属性Name的更改,
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
OnChangedProperty("Name");
}
}
绑定到控件上指定的列。