我想将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那样有效,但是除非表具有数千行,否则我不会担心。

10-08 13:34