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();
        }