我有一个有3个字段的数据表,我需要组合第2和第3个字段的值并显示在组合框中.我的方法就是如此
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Col1", typeof(string));
dt.Columns.Add("Col2", typeof(string));
Enumerable.Range(1, 10).ToList().ForEach(i => dt.Rows.Add(i, string.Concat("Col1", i), string.Concat("Col2", i)));
comboBox1.DataSource = dt;
comboBox1.DisplayMember = string.Format("{0} : {1}","Col1","Col2");
Run Code Online (Sandbox Code Playgroud)
但我得到的输出是System.Data.DataRowView......
即使我无法从存储过程级别更改它.然而,我可以通过暴露一些属性使用实体方法来做到这一点,但目前这将是一个巨大的变化.是否有任何机制可以使用数据表作为源并完成工作.
谢谢
我已经完成了它
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Col1", typeof(string));
dt.Columns.Add("Col2", typeof(string));
dt.Columns.Add("ConcatenatedField", typeof(string), "Col1 + ' : ' +Col2");
Enumerable.Range(1, 10).ToList().ForEach(i => dt.Rows.Add(i, string.Concat("Col1", i), string.Concat("Col2", i)));
comboBox1.DataSource = dt;
comboBox1.DisplayMember = "ConcatenatedField";
Run Code Online (Sandbox Code Playgroud)