当AfterLabelEdit事件触发时,c#ListViewItem卡在编辑模式中

时间:2014-10-01 10:40:39

标签: c# listview dictionary keynotfoundexception

正如标题所说,当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);
        }
    }

我非常确定键和值不是空的。有任何想法吗?请问是否还有不清楚的地方。

0 个答案:

没有答案