Diferentes vistas / controles de usuario en cada pestaña de un TabControl

Estoy tratando de escribir un programa que use pestañas para contener diferentes controles de usuario. Lo que actualmente quiero que suceda es que el usuario hace clic en un botón de búsqueda, se crea una nueva pestaña y aparece una pantalla de búsqueda dentro de ella. Usando la pantalla de búsqueda, el usuario puede seleccionar clientes y luego abrirlos en sus propias pestañas nuevas, lo que permite al usuario editarlos. Entonces, si el usuario entró y seleccionó tres clientes, la pantalla tendría cuatro pestañas, una para la pantalla de búsqueda y tres pestañas de cliente. También deberá cerrar la pestaña cuando el usuario haga clic en un botón de salida en el control de usuario en esa pestaña.

Mi problema es que no estoy seguro de cómo configurar esto en mi programa. Creé un TabControl y vinculé el ItemsSource a una colección de modelos de vista (que puedo agregar cada vez que un usuario agrega una nueva pantalla). Puedo usar un DataTemplateSelector para seleccionar el DataTemplate que contiene la vista correcta, pero no sé cómo configurar el recurso de la vista en mi modelo de vista.

Estoy haciendo esto en WPF y actualmente estoy usando Bxf para poner mis modelos de vista en las vistas, y esto normalmente funciona, pero no estoy seguro de cómo encaja con el TabControl.

Estoy tratando de mantener MVVM, así que no tengo una lista de vistas en mi modelo de vista.

¿Alguien ha hecho algo similar a esto antes?

Respuestas a la pregunta(2)

Su respuesta a la pregunta