public void AddViewModel(NavigationItemViewModel vm)
        {
            if (this.sourceRecord is CategoryItem)
            {
                return;
            }

            this.viewModels.Add(vm);
        }
        public NavigationItemViewModel(PersonalRecord record, NavigationItemViewModel parentViewModel)
            : base()
        {
            this.sourceRecord = record;
            this.parent       = parentViewModel;

            this.initializeProperties();

            this.IsExpanded = new ReactivePropertySlim <bool>(true)
                              .AddTo(this.disposables);
            this.IsSelected = new ReactivePropertySlim <bool>(false)
                              .AddTo(this.disposables);
        }
        public NavigationItemViewModel(CategoryItem category, NavigationItemViewModel parentViewModel, PersonalInformation personData)
            : this(category, parentViewModel)
        {
            switch (category.Category.Value)
            {
            case NavigationCategory.PhysicalInformation:
                this.Children = personData.Physicals
                                .ToReadOnlyReactiveCollection(p => new NavigationItemViewModel(p, parentViewModel))
                                .AddTo(this.disposables);
                break;

            case NavigationCategory.ExamInformation:
                this.Children = personData.ExsamResults
                                .ToReadOnlyReactiveCollection(e => new NavigationItemViewModel(e, parentViewModel))
                                .AddTo(this.disposables);
                break;
            }
        }