WPF Caliburn.Micro y TabControl con problema UserControls

Estoy bastante seguro de que esto ha sido respondido en alguna parte, pero parece que no puedo encontrarlo para mi vida.

Estoy tratando de usar un control de control para cambiar entre controles de usuario (cada pestaña es diferente, por lo que no utilizo elementos)

Aquí está el desglose: tengo mi vista principal, y 3 controles de usuario. Mainview tiene un control de pestañas; cada pestaña debe mostrar un control de usuario diferente.

Fácilmente podría establecer el control de tabulador en el control de usuario usando Pero luego no está vinculado al modelo de vista, solo a la vista.

Así que estoy usando Conductor en mi VM, y ActivateItem. Aquí es donde empieza a ponerse raro / frustrante. La aplicación comienza con Tab0 seleccionado, pero el contenido de Tab2 (última pestaña). Haga clic en cualquier otra pestaña, carga el ViewModel correcto para esa pestaña. Haga clic de nuevo en Tab0, carga el contenido correcto allí también.

¿Cómo consigo que esto pare? Además, realmente me gustaría si el cambio de pestañas no reinicia nuevamente el modelo de vista, borrando los campos que ya se han ingresado.

De todos modos, aquí hay algo de mi fuente, solo voy a dejar esto aquí y trabajar en otra cosa antes de romper mi mouse.

Ver:

<TabControl HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Row ="1">
        <TabItem Header="PC Information">
            <Grid>
                <ContentControl x:Name="LoadRemoteInfo" cal:View.Model="{Binding ActiveItem}"/>
            </Grid>
        </TabItem>
        <TabItem Header="Remote Tools">
            <Grid>
                <ContentControl x:Name="LoadRemoteTools" cal:View.Model="{Binding ActiveItem}"/>
            </Grid>
        </TabItem>
        <TabItem Header="CHRemote">
            <Grid>
                <ContentControl x:Name="LoadCHRemote" cal:View.Model="{Binding ActiveItem}"/>
            </Grid>
        </TabItem>

    </TabControl>

y el ViewModel:

class MainViewModel : Conductor<object>
{
    RemoteInfoViewModel remoteInfo = new RemoteInfoViewModel();
    RemoteToolsViewModel remoteTools = new RemoteToolsViewModel();
    CHRemoteViewModel chRemote = new CHRemoteViewModel();

    public MainViewModel()
    {
        ActivateItem(remoteInfo);
    }

    public void LoadRemoteInfo()
    {
        ActivateItem(remoteInfo);
    }

    public void LoadRemoteTools()
    {
        ActivateItem(remoteTools);
    }

    public void LoadCHRemote()
    {
        ActivateItem(chRemote);
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta