C# 我的组合框是什么?您选择的索引更改错误?

C# 我的组合框是什么?您选择的索引更改错误?,c#,sqlite,combobox,listbox,C#,Sqlite,Combobox,Listbox,我想将组合框中所选项目的值设置为变量(person),以便将person值与sqlite数据库中的值进行比较。这是我的密码: private void cboSelectClient_SelectedIndexChanged(object sender, EventArgs e) { string str; personSearch = new Person(); selectedPersonList = new List<Person>(); 这是我填充组

我想将组合框中所选项目的值设置为变量(person),以便将person值与sqlite数据库中的值进行比较。这是我的密码:

private void cboSelectClient_SelectedIndexChanged(object sender, EventArgs e)
{
    string str;
    personSearch = new Person();
    selectedPersonList = new List<Person>();
这是我填充组合框的方式:

foreach (Person PersonItem in _listAllData)
{
     if (PersonItem.FirstName != equalPerson.FirstName) //Add name en add  nie die name wat klaar in is nie... VIND UIT HOE OM NET N SEKERE DEEL TE ADD..
     {
         cboSelectClient.Items.Add(PersonItem.ID +" : "
            + PersonItem.FirstName + " " 
            + PersonItem.LastName + " " 
            + PersonItem.Age + " " 
            + PersonItem.Email + " " 
            + PersonItem.Item.ItemCode 
            + " " + PersonItem.Item.ItemDescription 
            + " " + PersonItem.Item.ItemName + " " 
            + PersonItem.Item.ItemPrice);

      }

      equalPerson = PersonItem;
}

这里的问题是,您正在用字符串填充组合框,而不是用实际的Person对象。当然,这个字符串不能直接转换回object,因此转换失败,
personSearch
被分配给
null

要解决此问题,您需要:

  • 用实际的
    Person
    对象填充组合框。确保
    组合框.ValueMemeber
    为空
  • Person
    类中定义一些属性,如
    Text
    ,并将
    DisplayMember
    设置为该属性,或覆盖
    ToString
    以控制CombobBox中的条目在UI上的显示方式

  • 您得到的错误或意外行为是什么?当您在未事先使用该变量的情况下更改其引用时,为什么要将
    Person
    的新实例分配给
    personSearch
    ?如何填充组合框?当涉及到这一行时:personSearch=cboSelectClient.SelectedItem as Person;它不会将我的personSearch值设置为任何东西看起来像是向组合框中添加字符串,但希望出现一个对象…Thanx我将尝试这个!
    foreach (Person PersonItem in _listAllData)
    {
         if (PersonItem.FirstName != equalPerson.FirstName) //Add name en add  nie die name wat klaar in is nie... VIND UIT HOE OM NET N SEKERE DEEL TE ADD..
         {
             cboSelectClient.Items.Add(PersonItem.ID +" : "
                + PersonItem.FirstName + " " 
                + PersonItem.LastName + " " 
                + PersonItem.Age + " " 
                + PersonItem.Email + " " 
                + PersonItem.Item.ItemCode 
                + " " + PersonItem.Item.ItemDescription 
                + " " + PersonItem.Item.ItemName + " " 
                + PersonItem.Item.ItemPrice);
    
          }
    
          equalPerson = PersonItem;
    }