Это я получил: Первое случайное исключение типа System.NullReferenceException произошло в PresentationFramework.dll
Когда я использую параметр для конструктора моего LessonPlannerViewModel класса.
Я использую класс dateatemplateselector для переключения между недельным / дневным просмотром.
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();
...
Разве это не разрешено? Без параметра я не получаю исключения ...
Что я не прав?
РЕДАКТИРОВАТЬ: НЕТ Я изменил параметр на целое число и получил лучшее сообщение; P
XamlParseException =>
'Не найдено подходящего конструктора для типа' TBM.ViewModel.LessonPlannerViewModel '. Вы можете использовать директивы Arguments или FactoryMethod для создания этого типа. ' Номер строки «13» и позиция «10».
хорошо, теперь понятно, что
<UserControl.Resources>
<ViewModel:LessonPlannerViewModel x:Key="LessonPlannerViewModelID" />
</UserControl.Resources>
не имеет параметров.
Так что же теперь делать?