Ce que je suis: Une première chance exception du type 'System.NullReferenceException' a eu lieu dans PresentationFramework.dllInjecter ViewModel avec des données throws Exception
Lorsque j'utilise un paramètre pour le constructeur de ma classe LessonPlannerViewModel. J'utilise une classe datatemplateselector pour passer de la vue hebdomadaire à la vue quotidienne.
public class ApplicationNavigationTemplateSelector : DataTemplateSelector
{
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
if (item is LessonPlannerViewModel)
{
var vm = item as LessonPlannerViewModel;
Window window = Application.Current.MainWindow;
if (vm.IsDailyView)
return window.FindResource("dailyViewTemplate") as DataTemplate;
else
return window.FindResource("weeklyViewTemplate") as DataTemplate;
}
return base.SelectTemplate(item, container);
}
}
public LessonPlannerViewModel(DateTime asOfDate)
{
_asOfDate = asOfDate;
if(_isDailyView)
LoadDailyData();
if(_isWeeklyView)
LoadWeeklyData();
...
est-ce pas permis? Sans le paramètre, je ne reçois aucune exception ...
Qu'est-ce que je me trompe?
EDIT: J'ai modifié le IcI paramètre à un entier et a obtenu un meilleur message; P
XamlParseException => « Aucun constructeur correspondant trouvé sur le type 'TBM.ViewModel.LessonPlannerViewModel'. Vous pouvez utiliser les directives Arguments ou FactoryMethod pour construire ce type. ' Numéro de ligne '13' et position de ligne '10'.
ok c'est maintenant compréhensible, que
<UserControl.Resources>
<ViewModel:LessonPlannerViewModel x:Key="LessonPlannerViewModelID" />
</UserControl.Resources>
n'a pas de paramètre.
Alors que faire maintenant?
J'utilise déjà le cadre laurent's. Mais j'ai vu que ma stratégie de chargement devait changer comme l'exécution d'une méthode Init pour charger des données lors de la création de l'objet de classe. – msfanboy
J'ai fait cette expérience aussi, il est préférable de laisser le constructeur nettoyer ou simplement enregistrer des messages. Vous pouvez utiliser une classe de base abstraite avec des méthodes abstraites pour l'initialisation, l'activation, la réinitialisation, l'actualisation et les actions viewmodel comme ça. – CodeWeasel
ah qui se soucie ... ich akzeptier das als Réponse XD – msfanboy