在 Windows 窗体应用程序 C# 中以编辑模式将值绑定到组合框

Posted

技术标签:

【中文标题】在 Windows 窗体应用程序 C# 中以编辑模式将值绑定到组合框【英文标题】:Bind value to combobox in Edit mode in windows form app C# 【发布时间】:2021-10-23 15:02:27 【问题描述】:

我有一个列表,我在其中放置了添加和编辑按钮。两个按钮都使用相同的形式。 我使用组合框来添加或编辑人员的角色。这个列表是关于一个人可以拥有的不同角色,所以我需要来自表格人员的人员 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;
        
    

【问题讨论】:

【参考方案1】:

搜索后我明白我应该使用

cmbSelectName.Text = person1.FullName;

而不是

cmbSelectName.SelectedValue = person1.FullName;

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

【讨论】:

以上是关于在 Windows 窗体应用程序 C# 中以编辑模式将值绑定到组合框的主要内容,如果未能解决你的问题,请参考以下文章

如何检测windows窗体中的控件并对其进行编辑c#

如果应用程序具有应用程序清单,如何在 C# 中以编程方式获取?

在 C# WPF 或 Windows 窗体应用程序中使用 DirectX c++ DLL

Windows 窗体应用程序中的 HTML 编辑器 [关闭]

C#语言第一课-Windows窗体基本功能(Login登录界面)

VC中编辑C#窗口程序时 编辑按钮的单机事件为改变窗体的背景图片代码 谁给写一下谢谢