WPF: visão dinâmica / conteúdo

Eu sou um pouco iniciante no WPF, então eu pergunto isso ..

Vamos dizer que eu tenho uma janela, e dentro da janela eu quero ter algo como contêiner, poderia ser apenas fronteira ou talvez painel (em termos de forma winform). O conteúdo do contêiner é vinculado à opção selecionada (por exemplo: botão). Assim, por exemplo, quando o usuário seleciona OPÇÃO 1, o contêiner mostra o gráfico; quando o usuário seleciona OPÇÃO 2, o container mostra listview preenchido com dados; quando o usuário seleciona OPÇÃO 3, o contêiner mostra outras coisas e assim por diante.

Qual é a melhor / melhor (ou mais fácil talvez) abordagem para fazer isso? Estou pensando em usar o controle de usuário para o conteúdo do contêiner, mas não sei se isso é uma boa solução nem o desempenho para usar o controle do usuário para mostrar coisas pouco complexas e talvez alguns cálculos. Alguma outra ideia pessoal?

ilustração:

Para elaborar a resposta de @Sheridan , aqui está um simples TabControl XAML que faz o que você precisa:

                  

Resultado:

insira a descrição da imagem aqui

Você pode personalizá-lo um pouco adicionando este Style simples à sua Window.Resources .

     

O que resulta em:

insira a descrição da imagem aqui

O “Mentalidade WPF” faz você pensar que a interface do usuário controla em termos de sua funcionalidade, não sua aparência, isso é um TabControl =)

Eu resolvi isso com um ContentControl

MainWindow: (Defina as vistas que você deseja visualizar como resources)

             

ViewModel: (não pode ficar muito mais simples)

 public ViewModelBase CurrentView { get { return currentView; } set { Set(() => CurrentView, ref currentView, value); } } 

E lá vai você, você pode mudar seus pontos de vista, definindo o modelo de exibição para os controles que você definiu na sua MainWindow

 private void OnCommandExecuted() { CurrentView = someViewModel; } private void OnAnotherCommandExecuted() { CurrentView = anotherViewModel; } 

HTH!

O que você está descrevendo parece muito próximo de um TabControl padrão, mas com um ControlTemplate que coloca as guias no lado esquerdo em vez de acima do painel de conteúdo. Usando este método significaria ter um UserControl em cada TabItem , por exemplo. vários controles. Você pode descobrir mais sobre o TabControl na página de Classes TabControl no MSDN.