C# 我的组合框是什么?您选择的索引更改错误?
我想将组合框中所选项目的值设置为变量(person),以便将person值与sqlite数据库中的值进行比较。这是我的密码: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>(); 这是我填充组
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;
}