classificando elementos em um stackpanel WPF

Eu tenho um stackpanel com alguns controles de usuário que são adicionados ou removidos durante o tempo de execução. Esses elementos têm um índice que eu atribuo a eles quando os novos, preciso manter esses elementos classificados por esse índice, para que eu use uma função quicksort que os classifique com base no índice, mas na linha que faz a troca

          y = items[i]; //y is a temp variable
          items[i] = items[j];

eu recebo

"O índice especificado já está em uso. Desconecte o filho Visual no índice especificado primeiro"

Tentei copiá-los para uma variável temporária, excluí-los da coleção e atribuí-los ao índice correto com a função Inserir no UIElementCollection, mas depois recebo

"O Visual especificado já é filho de outro Visual ou a raiz de um CompositionTarget"

Existe um elemento clone que eu preciso ou algo está faltando em algum lugar?

questionAnswers(4)

yourAnswerToTheQuestion