void SelectDefaultTemplate() { if (SelectedTemplateId != null) { SelectTemplate(SelectedTemplateId); } else if (RecentTemplates.Count > 0) // select first recently used template if possible { var lastUsedTemplate = RecentTemplates.First(); SelectTemplateInCategory(lastUsedTemplate.Category, lastUsedTemplate.Id); // SelectTemplateInCategory has selected the group containing the recent template, // make sure to select the actual recent template inside the group if the group exists if (SelectedTemplate != null) { SelectedTemplate = lastUsedTemplate; } } else if (DefaultSelectedCategoryPath != null) // fallback to old DefaultSelected properties { if (DefaultSelectedTemplate != null) { SelectTemplateInCategory(DefaultSelectedCategoryPath, DefaultSelectedTemplate); } if (SelectedTemplate == null) { SelectFirstTemplateInCategory(DefaultSelectedCategoryPath); } } if (SelectedSecondLevelCategory == null) { SelectFirstAvailableTemplate(); } }