Вы можете реализовать это как угодно, используя MVVM или нет, это всего лишь вопрос подхода.
Суть десктопного приложения в том, что у вас есть окно, и на нем контролы. Вы загружаете в них некоторые данные. В вашем примере слева это список контактов, который загружается вначале и затем может изменяться (например, если добавили новый контакт). Справа вы отображаете другие контролы, данные в которых изменяются по ходу работы с приложением.
Клик по контакту - возбудили некоторый ивент - сработал некоторый код, который загрузил данные в некоторый объект - эти данные передались в контролы справа.
В модели MVVM все внутренности скрыты, вы лишь устанавливаете ивент, обновляете данные (модель), а отрисовка проходит сама, суть, впрочем, не меняется.