Como fazer Exibir / ViewModel obrigatório em aplicativos MVVM assim Expression Blend pode ser usado?

StackOverflow https://stackoverflow.com/questions/1017276

  •  06-07-2019
  •  | 
  •  

Pergunta

Quando você usa o Template MVVM Visual Studio , em seguida, seus ViewModels são obrigados a DataContexts dos seus pontos de vista no algo App.xaml.cs assim:

MainView mainView = new MainView();
mainView.DataContext = new MainViewModel();
mainView.Show();

E se você usar Composite Application Library , então você tem suas opiniões e ViewModels sendo unidos em seu Bootstrapper / Container / ServerLocator, etc.

Em qualquer caso, quando você abrir esses projetos no Expression Blend e abrir um arquivo de exibição XAML, Expression Blend não sabe qual ViewModel pertence a qual Ver uma vez que esta ligação é feita no código como no acima casos.

Você pode, naturalmente, definir um DataObjectProvider no seu XAML modo Expression Blend sabe onde obter seus dados para essa exibição, mas esta quebra MVVM e o padrão de dissociação desde sua opinião é agora hard-wired para um ViewModel específico. É assim que os designers normalmente trabalho com Expression Blend em projetos que são mais do que uma pequena demonstração?

Portanto, para aqueles de vocês usando o padrão MVVM e que têm designers que usam Expression Blend, como você está mantendo o seu Ver / ViewModel ligação estruturado para que o Expression Blend pode saber qual ViewModel pertence a qual Views?

Foi útil?

Solução

Mistura faz carregar e executar código, mesmo que ele não executar o aplicativo. Coloque algum DataContext amostra se DesignerProperties.GetIsInDesignMode (...) em um construtor de vista ou de outro método mais adequado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top