DataTable到可观察的集合

我一直在谷歌搜索并在这里搜索答案,但我仍然无法理解一个非常基本的东西 – 如何将DataTable转换为Observable Collection?

这是我得到了多远:

public ObservableCollection test; public class Test { public int id_test { get; set; } public string name { get; set; } } 

主要..

  DataTable TestTable = new DataTable(); TestTable.Columns.Add(new DataColumn("id_test", typeof(int))); TestTable.Columns.Add(new DataColumn("name", typeof(string))); DS.Tables.Add(TestTable); var test = new ObservableCollection(); foreach(DataRow row in test_table.Rows) { var obj = new Test() { id_test = (int)row.ItemArray[0], name = (string)row.ItemArray[1] }; test.Add(obj); 

我更新了代码,它似乎正在工作。

您不希望为表中的每一行创建新集合,而是为整个表创建一个集合(在表中为一行创建集合中的一个对象):

 var test = new ObservableCollection(); foreach(var row in TestTable.Rows) { var obj = new Test() { id_test = (int)row["id_test"], name = (string)row["name"] }; test.Add(obj); } 

我接受的解决方案有点问题。 它不允许类型为var的[]括号。

 var test = new ObservableCollection(); foreach(DataRow row in TestTable.Rows) { test.Add(new Test() { id_test = (int)row["id_test"], name = (string)row["name"], }); }