/// <summary>
        /// Adds a new link item.
        /// </summary>
        /// <param name="linkItem">Link item to add.</param>
        public void AddLinkItem(LinkItem linkItem)
        {
            if (String.IsNullOrEmpty(linkItem.Category) || String.IsNullOrWhiteSpace(linkItem.Category))
            {
                this.linkItemVMsWithoutCategory.Add(new LinkItemViewModel(this.ViewModelStore, linkItem));

                IOrderedEnumerable<LinkItemViewModel> items = linkItemVMsWithoutCategory.OrderBy<LinkItemViewModel, string>((x) => (x.Titel));
                ObservableCollection<LinkItemViewModel> temp = new ObservableCollection<LinkItemViewModel>();
                foreach (LinkItemViewModel item in items)
                    temp.Add(item);

                this.linkItemVMsWithoutCategory = temp;

                OnPropertyChanged("LinkItemVMsWithoutCategory");
            }
            else
            {
                // find or add category
                int categoryIndex = -1;
                for (int i = 0; i < this.linkItemVmsCategorized.Count; i++)
                    if (this.linkItemVmsCategorized[i].Category == linkItem.Category)
                    {
                        categoryIndex = i;
                        break;
                    }

                if (categoryIndex == -1)
                {
                    this.linkItemVmsCategorized.Add(new LinkItemCategoryViewModel(this.ViewModelStore, linkItem.Category));
                    categoryIndex = this.linkItemVmsCategorized.Count - 1;
                }

                // add item
                this.linkItemVmsCategorized[categoryIndex].LinkItemVMs.Add(new LinkItemViewModel(this.ViewModelStore, linkItem));

                IOrderedEnumerable<LinkItemViewModel> items = this.linkItemVmsCategorized[categoryIndex].LinkItemVMs.OrderBy<LinkItemViewModel, string>((x) => (x.Titel));
                ObservableCollection<LinkItemViewModel> temp = new ObservableCollection<LinkItemViewModel>();
                foreach (LinkItemViewModel item in items)
                    temp.Add(item);

                this.linkItemVmsCategorized[categoryIndex].LinkItemVMs = temp;

                OnPropertyChanged("LinkItemVmsCategorized");
            }
        }
 /// <summary>
 /// Constuctor.
 /// </summary>
 /// <param name="viewModelStore">The store this view model belongs to.</param>
 /// <param name="linkItem">Link item to be hosted by this view model.</param>
 public LinkItemViewModel(ViewModelStore viewModelStore, LinkItem linkItem)
     : base(viewModelStore)
 {
     this.linkItem = linkItem;
     this.navigateCommand = new DelegateCommand(NavigateCommand_Executed);
 }
 /// <summary>
 /// Constuctor.
 /// </summary>
 /// <param name="linkItem">Link item to be hosted by this view model.</param>
 public LinkItemViewModel(LinkItem linkItem)
 {
     this.linkItem = linkItem;
     this.navigateCommand = new DelegateCommand(NavigateCommand_Executed);
 }