public ListViewItem this [int index] { get { if (!owner.is_selection_available || index < 0 || index >= Count) throw new ArgumentOutOfRangeException ("index"); int item_index = owner.SelectedIndices [index]; return owner.Items [item_index]; } }