Vincular un ContentControl a UserControl y reutilizar la misma instancia

Estoy intentando enlazar el contenido de un ContentControl a un UserControl que he creado en mi ViewModel. No puedo usar el método para enlazar con un ViewModel y luego hacer que el UserControl sea el DataTemplate del ViewModel, ya que necesito que el contenido del ContentControl pueda cambiar con frecuencia, usando elmisma instancia de UserControls / Views, y no cree instancias de las vistas cada vez que vuelva a enlazar.

Sin embargo, al configurar la propiedad UserControl en una instancia UserControl, y luego cuando la vista se representa / enlazada a datos, obtengo:Debe desconectar el hijo especificado del Visual primario actual antes de adjuntar el Visual primario nuevo. A pesar de que no he agregado este UserControl a ningún lugar anteriormente, simplemente creé esta instancia anteriormente y la guardé en la memoria.

¿Hay una mejor manera de lograr lo que estoy haciendo?

En el ViewModel

public class MyViewModel : INotifyPropertyChanged
{
    //...

    private void LoadApps()
    {
        var instances = new List<UserControl>
                          {
                              new Instance1View(),
                              new Instance2View(),
                              new Instance3View(),
                          };
        SwitchInstances(instances);
    }

    private void SwitchInstances(List<UserControl> instances)
    {
        CenterApp = instances[0];
    }

    //...

    private UserControl _centerApp;
    public UserControl CenterApp
    {
        get { return _centerApp; }

        set
        {
            if (_centerApp == value)
            {
                return;
            }

            _centerApp = value;
            OnPropertyChanged("CenterApp");
        }
    }

    //...
}

En el view.xaml

<ContentControl Content="{Binding CenterApp}"></ContentControl>

Respuestas a la pregunta(1)

Su respuesta a la pregunta