Все вы знаете простейшую проперть у списковых контролов SelectedIndex. Отрывок из
доков:
If you set SelectedIndex to a value less that -1, an ArgumentException is thrown.
If you set SelectedIndex to a value equal or greater than the number of child elements, the value is ignored.
Вот этот диктаторско-садистский метод разработки API — это у их погромиздов хроническое? В чём вообще смысл "ругаться" на SelectedIndex=-2 и проглатывать -1? Смысл-то один и тот же — "убери выделение любых элементов"! Причём с выходом за границы элементов (второй абзац) всё нормуль — как будто проектировал совсем другой человек, там невалидный индекс просто игнорируется (в отличии от идиотских капризов при работе с List<>).
То, что такое
тупое важное поведение освещено в ремарках(!!), а не в (отсутствующей) секции "Exceptions" — отдельный просёр.
Чем-то разумным можно объяснить эти капризы разрабов? Там что, вся вселенная рухнет, если передать -2? Или этот говённый WPF так захардкожен "-1"-чками, что нельзя в сторону ступить?
Ты имеешь право быть диктатором и драконом, ограничивающим любые отклонения, но тогда уж КОНСИСТЕНТНЫМ! (т.е. везде одинаково строго) А делать там — строго, а тут на "отъявись" — признак безалаберной, неслаженной команды.
PS
Почему так прикипает? Ну например, ваш selectedIndex (в смысле переменная в программе) может зависеть от какого-нть алгоритма Монте Карло, где на выходе целое 0...конецСписка, либо "-100". Т.е. имей разрабы мозг, это "-100" можно было бы смело присвоить в ListBox.SelectedIndex ; а вместо этого мы сначала будем вынуждены проверять, что < 0 и потом передавать -1. Офигеть как удобно!