2010-04-19 17 views
2

J'ai une application WPF que j'utilise pour apprendre MVVM et IoC.IoC et Design Time

Le problème est que le modèle utilisé par l'une des vues s'attend à tirer une de ses dépendances dans le constructeur à partir d'un conteneur IoC. Lorsque vous travaillez sur cette vue dans le concepteur Visual Studio, elle ne peut pas afficher la conception car une exception est levée dans le modèle.

Y a-t-il un moyen de contourner cela? Est-ce que je tire mes dépendances au mauvais endroit dans le code ou est-ce que je peux passer dans les dépendances construites, peut-être à travers l'injection du constructeur.

Actuellement, le conteneur IoC est configuré en code dans App.xaml.cs.

Le conteneur IoC est un rouleau-soi-même tiré de cet article sur MSDN - http://msdn.microsoft.com/en-us/magazine/cc337885.aspx

Répondre

0

Je faisais face à un problème similaire récemment. Je travaille autour de lui avec le chèque suivant:

private void UserControl_Loaded(object sender, RoutedEventArgs e) 
    { 
     if (!System.ComponentModel.DesignerProperties.GetIsInDesignMode(new DependencyObject())) 
      Init(); 
    } 
+0

Merci - similaire à comment cela a été fait dans WinForms. – benPearce

0

J'ai trouvé le problème a été causé en déclarant la ViewModel comme datacontext de la vue dans le XAML, en déplaçant ce à la vue constructeur XAML rend correctement dans le concepteur.