工作中遇到了一个需求,我想把数据库查出来的数据动态绑定到一个Datagrid,但是问题是,Datatable的数据作为数据源不能始时的更新列表,所以就想把DataTable先转换成一个实现了InotyfiProperty接口的ObservableCollection的集合,然后再把ObservableCollection作为数据源绑定。转换成ObservableCollection的代码如下:
public ObservableCollection<T> ToObservableCollection<T>(DataTable dt) where T : class, new()
{
Type t = typeof(T);
PropertyInfo[] propertys = t.GetProperties();
ObservableCollection<T> lst = new ObservableCollection<T>();
string typeName = string.Empty;
foreach (DataRow dr in dt.Rows)
{
T entity = new T();
foreach (PropertyInfo pi in propertys)
{
typeName = pi.Name;
if (dt.Columns.Contains(typeName))
{
if (!pi.CanWrite) continue;