我正在尝试在 C# 中设置 .DisplayMemberComboBox 属性,但我想将它绑定(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/

10-10 09:18