首页 > 解决方案 > 在 Windows 窗体应用程序 C# 中以编辑模式将值绑定到组合框

问题描述

我有一个列表,其中放置了添加和编辑按钮。两个按钮都使用相同的形式。我使用组合框来添加或编辑人员的角色。这个列表是关于一个人可以拥有的不同角色,所以我需要来自表格人员的人员 ID。在这种情况下,我添加了一个组合框供用户在人员表中查找。“添加”按钮成功,但我不知道如何在编辑模式下将人名提取到组合框中。我的代码如下:

在表单加载的作用下:

         var person = (from b in db.PersonRepository.GetAll()
                      select new { b.Id , Fullname = b.LName + " " + b.Name + "-" + 
             b.Id.ToString()  } ).ToList();
         person.Insert(0, new 
          {
             Id = 0,
               Fullname = "Please select one"
        });
        cmbSelectName.DisplayMember = "Fullname";
        cmbSelectName.ValueMember = "Id";
        cmbSelectName.DataSource = person;

我还在代码上方放置了编辑记录的代码:

                if (PersonRoleId != 0)
        {
            this.Text = "edit";
            btnAddOrEditPersonRole.Text = "edit";
            var personRole = db.PersonRoleRepository.GetById(PersonRoleId);
            var person1 = (from b in db.PersonRepository.GetAll()
                           where b.Id == personRole.PId
                           select new { b.Id, Fullname = b.LName + " " + b.Name + "-" + 
          b.Id.ToString() }).ToList().FirstOrDefault();

            
            cmbSelectName.SelectedValue = person1.FullName;
     
            txtRolePost.Text = personRole.PersonPost;
            chbRolePersonStatus.Checked =(bool) personRole.Status;
        }
    }

标签: c#winformsgridviewdata-bindingcombobox

解决方案


搜索后我明白我应该使用

cmbSelectName.Text = person1.FullName;

代替

cmbSelectName.SelectedValue = person1.FullName;

我只是为遇到相同问题的任何人写答案,我也这样做


推荐阅读