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