Вы хотите ListBox и TabControl.
У обоих элементов управления есть элементы управления.
Они оба наследуются от Selector, поэтому у них есть SelectedItem.
Свяжите коллекцию моделей представления с вашим списком, назовите их чем-то значимым. PersonViewModel или FruitViewModel или что-то. Не называйте их listboxitem или чем-то с тем же именем или чем-то вроде имени элемента управления UI. По одному в ряду. Но давайте назовем их RowVM, как в модели представления, содержащей данные для строки списка.
Если вы связываетесь с SelectedItem этого ListBox, вы получаете экземпляр RowVM.
Вы можете связать это из вашего списка со свойством в WindowViewModel. Вы также можете привязать это свойство к другому элементу управления.
Вернемся к значимым именам.
Может быть, у Человека есть Обувь. Коллекция обуви, которую вы собираетесь показать в этом таб-контроле. Выберите человека в списке, и вы увидите его обувь на вкладке управления. Таким образом, PersonViewModel будет иметь наблюдаемую коллекцию обуви.
Вы можете связать элемент источника этого элемента управления с Обуви выбранного элемента списка. Который затем возьмет ту коллекцию обуви для любого человека, которого вы выберете в списке.
Это будет довольно неуклюжий вид привязки, хотя привязка к свойству в вашей модели представления обычно более чистая.
Если вы привяжете этот список к представлению коллекции, вы также можете использовать текущий элемент / запись в привязке.
https://social.technet.microsoft.com/wiki/contents/articles/29859.wpf-tips-bind-to-current-item-of-collection.aspx
И, конечно, это просто даст вам имя типа, потому что он не знает, как отобразить обувь.
Но это не проблема, потому что у wpf есть целая система шаблонов данных. Это позволяет вам использовать шаблон для обуви.
Вы должны уметь гуглить примеры всего этого, но вот один из них на вкладке управления, а именно:
Как связать TabControl с коллекцией ViewModels?
Надеюсь, этого достаточно, чтобы указать вам правильное направление. Или, по крайней мере, на пути с меньшим количеством камней.