私はそれに付けられたListView
とを持っItemActivate
ています。通常、私はイベントをトリガーしたものlistview.SelectedItems[0]
を取得するために使用します。ListViewItem
SelectedIndexChanged
今度は、アイテムが選択されるとすぐにアクティブ化できるように、サブスクライブしたいと思います。
残念ながら、これらの両方のイベントのsender
および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);
}