【发布时间】:2017-07-17 07:19:49
【问题描述】:
我有一个 CheckedListBox。作为数据源,我使用我自己的 Class var dataSource3 = new BindingList<Modells.Person>(); 的 BindingList。
然后我按字母顺序对它们进行排序。
var sorteddataSource3 = new BindingList<Modells.Person>(dataSource3.OrderBy(x => x.lastname).ToList());
并绑定它们。
clbPerson3.DataSource = sorteddataSource3;
clbPerson3.DisplayMember = "lastname";
clbPerson3.ValueMember = "idPerson";
我自己的班级结构如下:
public class Person
{
public int idPerson { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public string phonenumber { get; set; }
public string mailadress { get; set; }
public int idCompany { get; set; }
}
现在我有另一个“人员”列表,我从 RestRequest 获得:IRestResponse<List<Modells.Person>> selectedPersons = client.Execute<List<Modells.Person>>(request);
现在的任务是在 CheckedListBox sorteddataSource3 中设置来自 selectedPersons 的人员。
此时我的解决方案是:
for (int i = 0; i < selectedPersons.Data.Count; i++)
{
if (selectedPersons.Data[i].idCompany.Equals(comboBox3.SelectedValue))
{
int index3 = clbPerson3.Items.IndexOf(selectedPersons.Data[i].idPerson);
clbPerson3.SetItemChecked(index3, true);
}
}
首先我检查此人是否显示在 CheckedListBox 中。
之后我尝试获取该人的索引。这是我的错误。 index3 始终是 -1。
我正在寻找一种解决方案来设置 CheckedListBox 中选中的项目。
【问题讨论】:
-
您的问题似乎混淆了选择和检查。
标签: c# winforms datasource checkedlistbox