Carregando XAML em tempo de execução usando o padrão MVVM no WPF

Esta é uma pergunta que se estende da publicada originalmente aqui:Link para loading-xaml através do tempo de execução

Estou trabalhando em um aplicativo WPF MVVM que carrega conteúdo XAML dinamicamente de uma fonte externa, muito semelhante à resposta da postagem acim
Aqui está o que eu tenho até agora:

My View declara uma instância do ViewModel como um recurso e cria uma instância desse ViewModelo meu construtor ViewModel, estou carregando uma propriedade XamlString proveniente de uma fonte externa (arquivo ou banco de dados Na minha opinião, tenho um botão no qual o usuário clica após o ViewModel terminar de carregar e no código de evento de clique por trás estou desserializando o XAML carregado dinamicamente e o adiciono à minha grad

Minha pergunta é: como posso eliminar o code-behind e automatizar a lógica para que o View possa renderizar a nova seção xaml dinamicamente logo após o ViewModel terminar de obter o conteúdo XAML e inicializar a propriedade string?

Devo usar algum tipo de barramento de mensagens para que o ViewModel notifique assim que a propriedade for definida para que o View possa adicionar o novo conteúdo?

O que me incomoda é o fato de os ViewModels terem uma referência ao Views e não serem responsáveis pela geração de elementos da interface do usuári

Desde já, obrigado

Edita: Apenas para esclarecer: no meu caso em particular, não estou tentando vincular um Objeto de Negócios ou Coleção (Modelo) a um elemento de interface do usuário (por exemplo, Grade) que obviamente poderia ser realizado por meio de modelos e ligações. Meu ViewModel está recuperando um formulário XAML inteiro de uma fonte externa e definindo-o como uma propriedade de sequência disponível para o View.

Minha pergunta é: quem deve ser encarregado de desserializar essa propriedade de cadeia de caracteres XAML em um elemento da interface do usuário e adicioná-la programaticamente à minha grade assim que minha propriedade de cadeia de caracteres Xaml na VM estiver definid
Isso me parece mais uma responsabilidade do View, não do ViewModel. Mas o padrão, pelo que entendi, impõe a substituição de qualquer lógica por trás do código pelas ligações da V-V

questionAnswers(2)

yourAnswerToTheQuestion