-1

目标:我正在尝试在我的 Listview 上更改/编辑标签时更新字典

问题:我不知道如何从触发 AfterLabelEdit 的行中检索行/ListViewItem

我的班级正在订阅该活动

myListView.AfterLabelEdit +=new LabelEditEventHandler(myListView_AfterLabelEdit);

我正在用函数处理事件

        private void myListView_AfterLabelEdit(object sender, LabelEditEventArgs e )
        {
            MessageBox.Show("You Renamed Me to: "+e.Label.ToString());


            if (deviceDictionary.ContainsKey(***)) <--I need to retreive this row that was edited
            {

                MessageBox.Show("Entry updated");
            }
        }
4

1 回答 1

4

AfterLabelEditEvent事件将类型对象LabelEditEventArgs作为参数传递给处理程序方法。这个参数被命名为e;您已经将其显示为事件处理程序方法签名的一部分。

可通过 访问的此类的属性之一e是,它返回正在编辑Item的 的从零开始的索引。ListViewItem

一旦有了这个从零开始的索引,就可以使用它从ListView控件的Items属性中检索适当的项目:

// Retrieve the item that is being edited.
ListViewItem item = myListView.Items[e.Item];

一旦你有正确的ListViewItem,你可以查询它的属性。我认为你所说的“钥匙”是作为Name财产公开的。

private void myListView_AfterLabelEdit(object sender, LabelEditEventArgs e)
{
    MessageBox.Show("You Renamed Me to: " + e.Label.ToString());

    if (deviceDictionary.ContainsKey(myListView.Items[e.Item].Name))
    {
        MessageBox.Show("Entry updated");
    }
}
于 2013-03-19T17:56:07.460 回答