如何在组合框中插入第一个带有文本“QUOTE”的项目;选择";在C#windows应用程序中使用默认值0
我正在使用C#windows应用程序。我的代码如下如何在组合框中插入第一个带有文本“QUOTE”的项目;选择";在C#windows应用程序中使用默认值0,c#,.net,ienumerable,C#,.net,Ienumerable,我正在使用C#windows应用程序。我的代码如下 var categoryList = _objCategoryManager.GetAll(); cmbCategory.DisplayMember = "Name"; cmbCategory.ValueMember = "Id"; cmbCategory.DataSource = categoryList; 这里的categoryList是IEnumerable类型。我想在0索引处的组合框中插入项,即“--选择--”数据绑定后,无法将项插入
var categoryList = _objCategoryManager.GetAll();
cmbCategory.DisplayMember = "Name";
cmbCategory.ValueMember = "Id";
cmbCategory.DataSource = categoryList;
这里的categoryList是IEnumerable类型。我想在0索引处的组合框中插入项,即“--选择--”数据绑定后,无法将项插入到组合框中。而是先在数据源的副本中插入该项,然后进行绑定 如果
categoryList
是IEnumerable
而不是列表
,则应将其复制到列表
,以便在第一个索引处添加默认值:
var categoryList = _objCategoryManager.GetAll().ToList();
categoryList.Insert(0, new Category {Id = -1, Name = "--SELECT--"});
只需将其插入列表,如下所示
var categoryList = _objCategoryManager.GetAll().ToList();
cmbCategory.DisplayMember = "Name";
cmbCategory.ValueMember = "Id";
categoryList.Insert(0, new Category() { Name = "--SELECT--"} );
cmbCategory.DataSource = categoryList;
使用LINQ,您可以找到要更改的对象(绑定后)并修改该项
否则,如果要将对象添加到列表中:
categoryList.ToList().Add(obj); // This should show the new item in the combo box
最终,您的.GetAll()方法应该返回第一个要为--SELECT--“的方法,而不是事后尝试修改它。
categoryList.Insert(..
“此处categoryList的类型为IEnumerable”,并且该类型没有名为Insert
trycategoryList.Add
或categoryList.ToList().Add(…)
,或categoryList.Find(o=>o.objId==objId).Name=“--SELECT”
@BinkanSalaryman,感谢您指出,我错过了这一部分,并认为这是一个列表,因为NamecategoryList
categoryList.ToList().Add(obj); // This should show the new item in the combo box