Если вы посмотрите в поле расширенного текста, то оно содержит FlowDocument, который снова содержит блоки.
<RichTextBox>
<FlowDocument>
<Paragraph>
<Run>Text here!</Run>
</Paragraph>
</FlowDocument>
</RichTextBox>
Чтобы связать RichTextBox с контентом, можно создать (извлечь) элемент управления, который представляет FlowDocument из RichTextBox в качестве свойства зависимостей. В таком случае Viemodel поддерживает FlowDocument, и он обновляется в виде - вы привязываете его к реквизиту зависимости на своем производном элементе управления.
Теперь ввод текста будет проблемой, поскольку изменение содержимого в FlowDocument не уведомляет модель представления об изменениях. Блоки в FlowDocument должны находиться в ObservableCollection для того, чтобы их можно было наблюдать.
Короче говоря, RichTextBox не очень хорош в MVVM. Если возможность редактирования не требуется, вы можете представить свои данные из viewmodel в виде ObservableCollection, содержащего объекты INotifyPropertyChanged, и представить структуру с использованием ItemsControl и DataTemplates.
Я хотел бы добавить, что выполнение чего-либо в программном обеспечении не против MVVM, если вы поддерживаете разделение модели, представления и модели представления.