I tried binding the tab to an observable collection and could not reproduce this, I tried adding and removing items.
Thanks for the code sample. Unfortunately I could not get it to run since there are a few things that I am missing, but looking at it:
The Xaml seems to be ok.
As far as I gather from your code, you bind the TabControl to a collection, then copy the collection, afterwards clear the first collection and then copy back the items. Why is this?
If the collection that you bind to is observable (as it seems), this should not be necessary.
Also, you can set a selected item instead of a selectedIndex, like so:
tabControl.SelectedItem = layers.FirstOrDefault(layer => String.Equals(layer.Name, ActiveLayer.Name));
Please make sure that the collections and objects that you bind to are observable, so that everything will get updated properly.
We will be happy to look at a sample project where the problem happens. If you want you can open a support ticket and send us a sample there.
the Telerik team