我有一個ListView
與ItemActivate
附加到它。通常我會用listview.SelectedItems[0]
來獲得觸發事件的ListViewItem
。如何在ItemActivate事件中獲取ListViewItem
現在我想訂閱SelectedIndexChanged
以及這些項目一旦被選中就可以激活。
不幸的是,sender
和這兩個事件不會返回它triggred事件影響的項的e
(據我知道的!)。
一個解決方法是有一個像lvSelectedItem
這樣的字段,並在其中存儲活動項目...但我怎麼能做到這一點更好的方式?不知何故,我可以直接從發件人或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);
}
看我的回答更新 – eyossi 2012-07-18 21:40:45