public int Add (int itemIndex)
{
if (itemIndex < 0 || itemIndex >= owner.Items.Count)
throw new ArgumentOutOfRangeException ("index");
if (owner.virtual_mode && !owner.is_selection_available)
return -1;
owner.Items [itemIndex].Selected = true;
if (!owner.is_selection_available)
return 0;
return List.Count;
}