如何在数据表中的组合框中显示多个值

pri*_*kar 2 c# winforms

我有一个有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......

即使我无法从存储过程级别更改它.然而,我可以通过暴露一些属性使用实体方法来做到这一点,但目前这将是一个巨大的变化.是否有任何机制可以使用数据表作为源并完成工作.

谢谢

pri*_*kar 6

我已经完成了它

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)