public TagSelectorView(ITagsManager tagsManager, IIdeaManager ideaManager, IBlockManager blockManager, IRelationManager relationManager, ISettingsService settingsService, IMaterialManager materialManager) { _settingsService = settingsService; var allDb = new AllDb { RelationManager = relationManager, BlockManager = blockManager, IdeaManager = ideaManager, TagsManager = tagsManager, MaterialManager = materialManager }; InitializeComponent(); Loaded += (sender, args) => { var model = RegionContext.GetObservableContext(this).Value as ISelectTagRegionView; if (model != null) { var selectItem = new DelegateCommand<Guid>(id => { if (model.TargetType == typeof(Tag)) _settingsService.AddRecentTag(id); if (model.TargetType == typeof(Idea)) _settingsService.AddRecentIdea(id); if (model.TargetType == typeof(Block)) _settingsService.AddRecentBlock(id); if (model.TargetType == typeof(Comment)) _settingsService.AddRecentComment(id); if (model.TargetType == typeof(Guidable)) _settingsService.AddRecentGuidable(id); model.OkCommand.Execute(id); }); var items = model.TargetType == typeof (Tag) ? _settingsService.GetRecentTags() : model.TargetType == typeof (Idea) ? _settingsService.GetRecentIdeas() : model.TargetType == typeof (Block) ? _settingsService.GetRecentBlocks() : model.TargetType == typeof (Guidable) ? _settingsService.GetRecentGuidables() : _settingsService.GetRecentComments(); var recent = new BarSubItem() {CategoryName = "BuiltInMenus", Content = "Recent"}; MainMenu.Items.Add(recent); foreach (var item in items.OrderByDescending(i => i.Order)) recent.Items.Add(new BarButtonItem{Content = item.Name, CommandParameter = item.Id, Command = selectItem}); } DataContext = model; }; _tagHelper = new TagTreeHelper(treeList, allDb); _tagHelper.ReloadTree(); }