我想将ComboBox
绑定(bind)到DataTable
(我无法更改其原始架构)
cbo.DataSource = tbldata;
cbo.DataTextField = "Name";
cbo.DataValueField = "GUID";
cbo.DataBind();
我想要
ComboBox
显示tbldata.Name + tbldata.Surname
。当然,可以在绑定(bind)之前将新的名称+姓氏作为字段添加到
tbldata
中,但是我希望按照(pseudocode)的方式寻求更优雅的解决方案cbo.DataTextField = "Name";
cbo.DataTextField += "Surname";
最佳答案
计算出的色谱柱溶液可能是最好的。但是,如果您无法更改数据表的架构以添加该表,则可以遍历该表并填充将用作数据源的新集合。
var dict = new Dictionary<Guid, string>();
foreach (DataRow row in dt.Rows)
{
dict.Add(row["GUID"], row["Name"] + " " + row["Surname"]);
}
cbo.DataSource = dict;
cbo.DataTextField = "Value";
cbo.DataValueField = "Key";
cbo.DataBind();
显然,这不像直接绑定(bind)到DataTable那样有效,但是除非表具有数千行,否则我不会担心。