如何在 C# windows 应用程序中使用默认值为 0 的文本 "SELECT" 将第一项插入组合框中
How to insert first item in combo box with text "SELECT" with default value 0 in C# windows application
我正在使用 C# windows 应用程序。我的代码如下
var categoryList = _objCategoryManager.GetAll();
cmbCategory.DisplayMember = "Name";
cmbCategory.ValueMember = "Id";
cmbCategory.DataSource = categoryList;
这里categoryList是IEnumerable类型。我想在 ComboBox 中的 0 索引处插入项目,即。"--SELECT--"
您无法在数据绑定后向 ComboBox
插入项目。取而代之的是之前将项目插入到数据源的副本中,然后进行绑定。
如果 categoryList
是 IEnumerable<T>
而不是 List<T>
那么您应该将其复制到 List<T>
以便您可以在第一个索引处添加默认值:
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;
categoryList.ToList().Find(o => o.ID == Convert.ToInt32(0)).Name = "--SELECT--";
使用 LINQ,您可以找到要更改的对象(绑定后)并修改该项目。
否则,如果您要将对象添加到列表中:
categoryList.ToList().Add(obj); // This should show the new item in the combo box
最终,您的 .GetAll() 方法应该返回第一个“--SELECT--”,而不是之后尝试修改它。
我正在使用 C# windows 应用程序。我的代码如下
var categoryList = _objCategoryManager.GetAll();
cmbCategory.DisplayMember = "Name";
cmbCategory.ValueMember = "Id";
cmbCategory.DataSource = categoryList;
这里categoryList是IEnumerable类型。我想在 ComboBox 中的 0 索引处插入项目,即。"--SELECT--"
您无法在数据绑定后向 ComboBox
插入项目。取而代之的是之前将项目插入到数据源的副本中,然后进行绑定。
如果 categoryList
是 IEnumerable<T>
而不是 List<T>
那么您应该将其复制到 List<T>
以便您可以在第一个索引处添加默认值:
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;
categoryList.ToList().Find(o => o.ID == Convert.ToInt32(0)).Name = "--SELECT--";
使用 LINQ,您可以找到要更改的对象(绑定后)并修改该项目。
否则,如果您要将对象添加到列表中:
categoryList.ToList().Add(obj); // This should show the new item in the combo box
最终,您的 .GetAll() 方法应该返回第一个“--SELECT--”,而不是之后尝试修改它。