我有一个ListView
附带ItemActivate
的。通常我只会listview.SelectedItems[0]
用来获取ListViewItem
触发事件的。
现在我也想订阅,SelectedIndexChanged
这样项目一旦被选中就可以被激活。
不幸的是,这两个事件的sender
ande
都没有返回触发事件的项目(据我所知!)。
一种解决方法是有一个类似的字段lvSelectedItem
并将活动项目存储在其中......但是我怎样才能更好地做到这一点?不知何故,我可以直接从 sender 或 eventargs 获取所选项目?
这是我的代码:
private void lvPins_ItemActivate(object sender, EventArgs e)
{
var item = lvPins.SelectedItems[0];
var pin = item.Tag as Pin;
OnPinActivated(pin);
}
private void lvPins_SelectedIndexChanged(object sender, System.EventArgs e)
{
var item = lvPins.SelectedItems[0]; //this always cause argumentoutofrange exceotion
var pin = item.Tag as Pin;
OnPinActivated(pin);
}