为什么函数 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;
}
}
-1 是一个常见的返回值,表示未找到任何内容。 对于返回所搜索内容的索引的搜索函数,-1 表示该项不在列表中。
可能的原因是 IndexOf 需要对象。 您要搜索的字符串可能是对象的属性,而不是对象本身,因此 IndexOf 将某个对象与字符串进行比较,并且它们不匹配。
不要尝试 SelectedIndex,而是尝试 SelectedValue。 只要组合框的 value 属性包含所需的字符串,.NET 就会搜索组合框中的项,以查找其值与给定参数匹配的项。
KontynentComboBox2.SelectedValue =(((DataRowView)KontynentComboBox2.Items[i]).Row.ItemArray[0].ToString());
我认为 The IndexOf()
正在寻找一个string
,而你的组合框有 7 个非字符串项目,所以他找不到它的索引。如果是这种情况,请尝试用 string
类型的项目填充您的组合,而不是在 XAML 中执行此操作。