1

为什么函数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;
   }
}
4

2 回答 2

1

-1 是一个常见的返回值,表示没有找到任何东西。对于返回它正在搜索的索引的搜索函数,-1 表示该项目不在列表中。

可能的原因是 IndexOf 期待一个对象。您正在搜索的字符串可能是对象的属性,而不是对象本身,因此 IndexOf 将某个对象与字符串进行比较,但它们不匹配。

而不是 SelectedIndex 尝试 SelectedValue。只要组合框的 value 属性包含您想要的字符串,.NET 就会搜索组合框中的项目以找到其值与给定参数匹配的项目。

KontynentComboBox2.SelectedValue =(((DataRowView)KontynentComboBox2.Items[i]).Row.ItemArray[0].ToString());
于 2013-09-30T20:39:23.170 回答
0

我认为 TheIndexOf()正在寻找一段string时间,你的组合框有 7 个非字符串项。所以他找不到它的索引。如果是这种情况,请尝试用类型的项目填充 yo 组合,string而不是在 XAML 中进行。

于 2013-09-30T20:02:54.417 回答