The code I have below swaps two tabs around.  This is done through creating an array, deleting all tabs and then recreating them which seems very inefficient to me.Private Sub SwapTabs(ByVal tabOne As Tab, ByVal tabTwo As Tab)    'get array of all tabs    Dim tabs() As Tab = Me.Children.OfType(Of Tab).ToArray    'swap the tabs in the array    tabs(Me.Children.IndexOf(tabOne) - 1) = tabTwo    tabs(Me.Children.IndexOf(tabTwo) - 1) = tabOne    'remove all tabs from me    Dim lengthOfChilds As Integer = (Me.Children.Count - 1)    For index As Integer = lengthOfChilds To 0 Step -1        Dim objAtIndex As Object = Me.Children.Item(index)        If TypeOf objAtIndex Is Tab Then            Me.Children.Remove(objAtIndex)        End If    Next    'repopulate tabs    For Each t As Tab In tabs        Me.Children.Add(t)    NextEnd SubIs there a better or more efficient way to do this?
Swapping Tab Order
vb.net;wpf