Ваш TabControl.ItemsSource
должен быть привязан к вашей коллекции, поэтому чтобы изменить порядок элементов табуляции, просто измените порядок расположения коллекции.
Я работал с кодом перетаскивания Bea, прежде чемсоздать TabControl, который позволял бы пользователям перетаскивать элементы вкладок, и я думаю, что большая часть того, что было нужно, находится в коде, который она предоставляет.При удалении он удаляет перетаскиваемый объект из родительской коллекции и вставляет его в новое место в целевой коллекции перетаскивания, которая в вашем случае является той же коллекцией.
Редактировать
Исходя из вашего комментария об обновлении ViewModel
с помощью индекса вкладки, попробуйте использовать событие CollectionChanged
.
void MyCollection_CollectionChanged(object sender, CollectionChangedEventArgs e)
{
foreach (var item in MyCollection)
item.TabIndex = MyCollection.IndexOf(item);
}