为什么函数 IndexOf 从 ComboBox 返回 -1

本文关键字:返回 ComboBox 函数 IndexOf 为什么 | 更新日期: 2023-09-27 18:33:25

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

为什么函数 IndexOf 从 ComboBox 返回 -1

-1 是一个常见的返回值,表示未找到任何内容。 对于返回所搜索内容的索引的搜索函数,-1 表示该项不在列表中。

可能的原因是 IndexOf 需要对象。 您要搜索的字符串可能是对象的属性,而不是对象本身,因此 IndexOf 将某个对象与字符串进行比较,并且它们不匹配。

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

KontynentComboBox2.SelectedValue =(((DataRowView)KontynentComboBox2.Items[i]).Row.ItemArray[0].ToString());

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