gpt4 book ai didi

c# - 如何在组合框中添加 2 列?

转载 作者:太空宇宙 更新时间:2023-11-03 20:25:18 24 4
gpt4 key购买 nike

我认为在组合框中显示列是负责表单设计器中的这个字符串:

this.ComboBox1.DisplayMember = "name";

但是,我无法在“名称”附近添加任何内容,组合框显示在所有字符串中:System.Data.DataRowView

也许是错误的,请告诉我怎么做?

我只是从数据源中将表格作为组合框拖动:

加载表单时:

private void frmCheck_Load(object sender, EventArgs e)
{
this.ttzTableAdapter.Fill(this.dbDataSet.ttz, Convert.ToInt32(idFromWork.Text));
}

所以组合框显示,列表中只有“姓名”,我希望他在列表中显示“号码”和“姓名”。

"Convert.ToInt32(idFromWork.Text)" 

显示名称的参数,其中 id_ttz(ID) = @idwork

最佳答案

DisplayMembera string specifying the name of an object property包含在由 DataSource 属性指定的集合中。您不能指定要显示的多个属性。如果您尝试这样做,将找不到您的“复合属性”,并且对象将通过 ToString() 实现显示(这就是为什么您会看到 System.Data.DataRowView 字符串)。

如果需要显示对象的多个属性,可以create custom multi-column combobox并将它的弹出窗口实现为 ListView 或 DataGridView。

更新:您可以创建自己的匿名类型,而不是直接绑定(bind)到 DataView 的 DataTable,这将提供用于显示的格式化文本:

ComboBox1.DataSource = tdbDataSet.ttz.AsEnumerable()
.Select(row => new
{
Text = String.Format("{0,5} | {1}", row["id_ttz"], row["name"]),
Value = row["id_ttz"]
})
.ToList();

ComboBox1.DisplayMember = "Text";
ComboBox1.ValueMember = "Value";

关于c# - 如何在组合框中添加 2 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10961850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com