正如标题所说,当AfterLabelEdit触发时,即使我按下返回或点击空白区域,ListViewItem也会陷入编辑模式。
错误:
类型的第一次机会异常 ' System.Collections.Generic.KeyNotFoundException'发生在 mscorlib.dll中
这就是代码的样子:
ListViewItem oldItem;
private void listView_BeforeLabelEdit(object sender, LabelEditEventArgs e)
{
oldItem = listView.Items[e.Item]; // store the unedited item
}
private void listView_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
// make sure the new label has been edited and isn't null
if(e.Label != "" && e.Label != oldItem.Text)
{
// iterate through Dictionary<string, List<string>> dict, find values of the key named oldItem.Text
foreach(var keyValuePair in dict)
{
if(keyValuePair.Key == oldItem.Text)
{
foreach(string s in keyValuePair.Value)
{
if(s != "")
dict[e.Label].Add(s); // ----------------- Error
}
}
}
dict.Remove(oldItem.Text);
}
}
我非常确定键和值不是空的。有任何想法吗?请问是否还有不清楚的地方。