c# - 如何在组合框的顶部插入项目?

标签 c# winforms linq-to-sql

您好,我正在使用 Linq to SQl 来绑定(bind)组合框控件。如何在组合框列表的顶部添加项目?

var items = from c in db.Contacts
                               orderby c.Name ascending
                               select c;
                if (items.ToList().Count > 0)
                {
                    cmb1.BindingContext = new BindingContext();
                    cmb1.DataSource = items;
                    cmb1.DisplayMember = "Name";
                    cmb1.ValueMember = "ID";
                }

                cmb1.Items.Insert(0, "--Select--");

上面的代码失败了。

最佳答案

一种方法是在绑定(bind)之前将“--Select--”联系人占位符插入到结果中:

     var items = (from c in db.Contacts
                  orderby c.Name ascending
                  select c).ToList();

     items.Insert(0, new Contact { ID = 0, Name = "--Select--" });

     cmb1.BindingContext = new BindingContext();
     cmb1.DataSource = items;
     cmb1.DisplayMember = "Name";
     cmb1.ValueMember = "ID";

或者您可以对结果的匿名版本执行相同的操作:

     var items = (from c in db.Contacts
                  orderby c.Name ascending
                  select new { c.ID, c.Name }).ToList();

     items.Insert(0, new { ID = 0, Name = "--Select--" });

     cmb1.BindingContext = new BindingContext();
     cmb1.DataSource = items;
     cmb1.DisplayMember = "Name";
     cmb1.ValueMember = "ID";

关于c# - 如何在组合框的顶部插入项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5518233/

相关文章:

c# - 我们可以排除 ADO.Net 实体数据模型中 ToList() 方法中的特定记录吗?

c# - 如何在 Excel 中使用正确的列打开 CSV 文件

c# - IOwinContext 上下文为空

c# - LINQ-to-SQL orderby 问题

c# - Linq to Sql 结果导致组合框异步

c# - 当我没有为标识列指定值时,为什么我在 LINQ to SQL 中得到 "Cannot insert explicit value for identity column"?

c# - ASP.NET MVC3 用户登录

c# - 为什么 Path.Combine 没有合并路径和文件?

c# - 向 .NET Windows 窗体 (C#) 添加大量控件时出现问题

c# - 将表格移动到特定屏幕