gpt4 book ai didi

c# - WinForm ComboBox 在数据绑定(bind)后添加文本 "Select"

转载 作者:行者123 更新时间:2023-11-30 21:09:58 25 4
gpt4 key购买 nike

在我的表单中,我有一个控件 ComboBox。我想在数据绑定(bind)后添加文本“选择”。我试试这个

cbOperatorList.DataSource = operatorService.GetOperatorList();
cbOperatorList.Items.Insert(0, "Select");

但是当我这样做的时候。我得到异常什么

Changing the collection of items is impossible if you set the property DataSource.

更新

public BindingList<Operator> GetOperatorList(string filter = "")
{
return
new BindingList<Operator>(
this.operatorRepository.All.Where(
item => item.FirtsName.Contains(filter) || item.LastName.Contains(filter) || item.MiddleName.Contains(filter)).
ToList());
}

更新

我用这段代码解决了这个问题

cbOperatorList.DataSource =
this.operatorService.GetOperatorList().Concat(new[] { new Operator { LastName = "Select", Id = 0 } }).OrderBy(
item => item.Id).ToList();

最佳答案

如果GetOperatorList()返回一个不可变的 IEnumerable<T> ,您可以使用 linq 将其与 new object[] { "Select" } 连接起来.假设T不是 object ,你必须投:

cbOperatorList.DataSource = operatorService
.GetOperatorList()
.Cast<object>()
.Concat(new object[] { "Select" });

编辑

如果您希望单词“Select”出现在开头,请反转连接:

cbOperatorList.DataSource = (new object[] { "Select" })
.Concat(
operatorService.GetOperatorList().Cast<object>()
);

关于c# - WinForm ComboBox 在数据绑定(bind)后添加文本 "Select",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8751701/

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