public override void OnChangeSelection(bool down)
{
int newIndex = down ? SelectedIndex + 1 : SelectedIndex - 1;
if (newIndex >= Items.Count) newIndex = 0;
if (newIndex < 0) newIndex = Items.Count - 1;
while (!Usable(Items[newIndex]))
{
newIndex += down ? 1 : -1;
if (newIndex >= Items.Count) newIndex = 0;
if (newIndex < 0) newIndex = Items.Count - 1;
}
OnChangeSelection(newIndex);
}