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 を試してください。コンボ ボックスの値プロパティが必要な文字列を保持している限り、.NET はコンボ ボックス内の項目を検索して、値が指定されたパラメーターと一致する項目を見つけます。

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

IndexOf()コンボボックスに7つの非文字列アイテムがあるためstring、彼はそのインデックスを見つけることができませんでした。stringその場合は、XAML で行うのではなく、タイプのアイテムで yo コンボを埋めてみてください。

于 2013-09-30T20:02:54.417 に答える