在面向对象的编程中,数据的持久化一般都通过ORM实现。
但这样的化,怎么将一个实体对象或是DTO,去bind到DataGrid中了
 请教了??

解决方案 »

  1.   

    可以将对象加入到arraylist再绑定
      

  2.   

    把他们放到一个集合中就可以了public class test
    {
     private string a;
     public string A
     {
     get{return a;}
     set{a=value;}
     }
    private string b;
    public string B
    {
    get{return b;}
    set{b=value;}
    } }test[] tests=null;
    test test1=new test();
    test1.A="a1";
    test1.B="b1";
    test test2=new test();
    test2.A="a2";
    test2.B="b2";
    tests=new test[2]{test1,test2};

       this.dataGrid1.DataSource=tests;
      

  3.   

    谢谢thinkingforever,你的方法可以。不过我已经写了将对象数组转换为DataSet的类。给大家分享。public class ObjectToDataSet
    { public static DataSet ObjectArrayToDataSet(object[] objArr)
    {
    if (objArr.Length == 0)
    return null;
    DataSet ds = CreateDataSet(objArr[0].GetType());
    ds = FillDataSet(ds, objArr);
    return ds;
    } public static DataSet CreateDataSet(Type t)
    {
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();
    ds.Tables.Add(dt); PropertyInfo[] pis = t.GetProperties();
    foreach (PropertyInfo pi in pis)
    {
    DataColumn dc = new DataColumn(pi.Name, pi.PropertyType);
    dt.Columns.Add(dc);
    }
    return ds;
    } public static DataSet FillDataSet(DataSet ds, object[] objArr)
    {
    DataColumnCollection dcs = ds.Tables[0].Columns;
    Type t = objArr[0].GetType();
    foreach (object obj in objArr)
    {
    DataRow dr = ds.Tables[0].NewRow();
    for (int i = 0; i < dcs.Count; i++)
    {
    dr[i] = t.InvokeMember(dcs[i].ColumnName, BindingFlags.GetProperty, null, obj, null);
    }
    ds.Tables[0].Rows.Add(dr);
    }
    return ds;
    }

    }