ArgumentException происходит из-за этой строки:
MyControl.Items.Clear();
Эта строка удаляет все элементы в элементе управления pivot, но ваша внутренняя переменная selectitem не учитывает это. В вашем коде всегда будет только один элемент сводки (который побеждает цель управления сводкой). Когда вы добавляете элемент № 2, переменная selectitem устанавливается на 1, и строка MyControl.SelectedIndex = 1;
выдает исключение, поскольку существует только 1 элемент сводки (0 основанных массивов и все такое).
Попробуйте удалить строку, которая очищает основные элементы выше, и посмотрите, работает ли она для вас. В противном случае вам придется изменить строку MyControl.SelectedIndex = i;
на MyControl.SelectedIndex = 0;
.
Только к вашему сведению - когда я запускал ваш образец, мне нужно было инициализировать selecitem -1, а не 0, или я получил то же сообщение об ошибке. Я также добавил код, чтобы установить свойство PivotItem.Header, чтобы было проще переключаться между элементами сводки.
Просто из любопытства, почему вы не делаете это через DataBinding вместо всего этого кода для загрузки элементов вручную?