我正在逐行读取文本文件,并将其插入到数组中。
然后我有一个名为 custIndex 的列表,其中包含某些索引,即我正在测试的 items 数组的索引,以查看它们是否是有效代码。(例如,custIndex[0]=7,所以我检查了 items[7-1] 中的值,看看它是否有效,在我这里有的两个字典中)。然后,如果有无效代码,我将这一行(项目数组)添加到 dataGridView1。
问题是,dataGridView1 中的某些列是组合框列,因此用户可以选择正确的值。当我尝试添加 items 数组时,出现异常:“DataGridView 中发生以下异常:System.ArgumentException:DataGridViewComboBoxCell 值无效。”
我知道使用正确的数据源正确添加了组合框,因为如果我只是将 items 数组中的一些项目添加到 dataGridView1 中,例如 items[0],组合框会显示得很好,并且不会抛出异常。我想问题是当我尝试将 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