テキストファイルを1行ずつ読み取り、配列に挿入しています。
次に、custIndexというこのリストがあります。このリストには、特定のインデックス、つまり有効なコードであるかどうかを確認するためにテストしているitems配列のインデックスが含まれています。(たとえば、custIndex [0] = 7なので、items [7-1]の値をチェックして、ここにある2つの辞書で有効かどうかを確認します)。次に、無効なコードがある場合は、その行(items配列)をdataGridView1に追加します。
重要なのは、dataGridView1の一部の列がコンボボックス列であるため、ユーザーは正しい値を選択できるということです。items配列を追加しようとすると、例外が発生します:「DataGridViewで次の例外が発生しました:System.ArgumentException:DataGridViewComboBoxCell値が無効です。」
コンボボックスが正しいデータソースで正しく追加されたことはわかっています。items[0]のように、items配列にいくつかのアイテムを追加するだけで、コンボボックスは正常に表示され、例外はスローされません。問題は、items配列の誤った値をdataGridView1行に追加しようとしたときだと思います。
どう対処したらいいのかわからない。その値を除いて、アイテムにすべてのアイテムを追加する方法はありますか?または、アイテムから値を追加して、入力されたドロップダウンアイテムと一緒にコンボボックスのセルに表示させることはできますか?
if(choosenFile.Contains("Cust"))
{
var lines = File.ReadAllLines(path+"\\"+ choosenFile);
foreach (string line in lines)
{
errorCounter = 0;
string[] items = line.Split('\t').ToArray();
for (int i = 0; i <custIndex.Count; i++)
{
int index = custIndex[i];
/*Get the state and country codes from the files using the correct indices*/
Globals.Code = items[index - 1].ToUpper();
if (!CountryList.ContainsKey(Globals.Code) && !StateList.ContainsKey(Globals.Code))
{
errorCounter++;
dataGridView1.Rows.Add(items);
}
}//inner for
if (errorCounter == 0)
dataGridView2.Rows.Add(items);
}//inner for each
}//if file is a customer file