Если вы используете шаблон MVVM с ViewModel, с коллекцией ViewModel в качестве элементов вкладки, вы можете сохранить ссылку на ICollectionView в ViewModel, например так:
public ICollectionView MyTabItemsCollectionView{ get; set; }
Затем в конструкторе установите его и создайте обработчики событий для события CurrentChanging
MyTabItemsCollectionView= CollectionViewSource.GetDefaultView(MyTabItemsCollection);
MyTabItemsCollectionView.CurrentChanging += MyTabItemsCollectionViewCurrentChanging;
Затем в обработчике событий сделайте все, что нужно, чтобы пользователь не закрыл его.
void WorkspacesCollectionViewCurrentChanging(object sender, CurrentChangingEventArgs e)
{
if (UserShouldNotBeAllowedToDoThis())
{
e.Cancel = true;
}
}