为什么函数IndexOf()
从组合框中返回-1?当我调试时,组合框有7个项目。
for (int i = 0; i < KontynentComboBox2.Items.Count; i++)
{
if((napis5.ItemArray.GetValue(0).ToString()) == ((((DataRowView)KontynentComboBox2.Items[i]).Row.ItemArray[0].ToString())))
{
int inc = KontynentComboBox2.Items.IndexOf((((DataRowView)KontynentComboBox2.Items[i]).Row.ItemArray[0].ToString()));
KontynentComboBox2.SelectedIndex = inc;
}
}
答案 0 :(得分:0)
我认为IndexOf()
正在寻找string
,而你的组合框有7个非字符串项。所以他找不到它的索引。尝试使用string
类型的项填充yo组合,而不是在XAML中进行,如果是这样的话。
答案 1 :(得分:0)
-1是一个常见的返回值,表示没有找到任何内容。对于搜索返回其搜索内容索引的函数,-1表示该项不在列表中。
可能的原因是IndexOf期待一个对象。您要搜索的字符串可能是对象的属性,而不是对象本身,因此IndexOf将某个对象与字符串进行比较,但它们不匹配。
而不是SelectedIndex尝试SelectedValue。只要组合框的value属性包含您想要的字符串,.NET就会搜索组合框中的项目,以找到其值与给定参数匹配的项目。
KontynentComboBox2.SelectedValue =(((DataRowView)KontynentComboBox2.Items[i]).Row.ItemArray[0].ToString());