我正在尝试在 C# 中设置 .DisplayMember
的 ComboBox
属性,但我想将它绑定(bind)到 .DataSouce
中的多个列。
我的 SQL 看起来像这样:
SELECT PersNbr, PersFirstName, PersMiddleName, PersLastName
FROM Pers WHERE PersNbr = :persNbr;
我将此查询保存在
DataTable
中,因此所选的每一列在 Datatable
中都有自己的列。我想让
.DisplayMember
成为 PersFirstName + PersMiddleName + PersLastName
的组合,因此它们的全名如下所示:comboBox.DisplayMemeber = "PersFirstName" + "PersMiddleName" + "PersLastName"
我知道我可以在查询中做到这一点:
SELECT PersNbr, (PersFirstName || PersMiddleName || PersLastName) PersName
然后就这样做:
comboBox.DisplayMember = "PersName";
但我不想在数据库层中格式化数据,因为它不应该在那里。
我还能如何在 Winforms 中实现这一目标?
最佳答案
您可以创建一个 expression column,然后将其用作 DisplayMember:
dataTable.Columns.Add(
"FullName",
typeof(string),
"PersFirstName + ' ' + PersMiddleName + ' ' PersLastName");
comboBox.DisplayMember = "FullName";
关于c# - 多个字段上的组合框显示成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52030908/