/// <summary> /// The initialize. /// </summary> /// <param name="item"> /// The item. /// </param> /// <param name="groupName"> /// The group name. /// </param> /// <param name="favoriteList"> /// The favorite list. /// </param> public void Initialize(NavigationItemInfo item, string groupName, IFavoriteList<IFavoriteInfo> favoriteList = null) { Model = item; Name = item.Name; GroupName = groupName; BackgroundColor = ColorUtils.GetGradientBrush(Colors.White.Lerp(item.BackgroundColor.ToColor(), 0.7f), item.BackgroundColor.ToColor()); BorderBrush = new SolidColorBrush(item.BackgroundColor.ToColor().Lerp(Colors.White, 0.5f)); if (favoriteList != null) { foreach (var f in favoriteList.Where(f => f.ProcessSystemName == GetProcessName())) { _isFavorite = true; _favoriteId = f.Id; break; } } LoadIcon(); }
/// <summary> /// Initializes the specified group. /// </summary> /// <param name="group"> /// The group. /// </param> /// <param name="favoriteList"> /// </param> public void Initialize(NavigationGroupInfo @group, IFavoriteList<IFavoriteInfo> favoriteList = null) { Model = group; _items.Filter += ItemsFilter; this.NavItems = new ObservableCollection<NavItemViewModel>(); foreach (var item in group.NavigationItems) { if (NavItems.Any(x => x.Name == item.Name)) continue; var newItem = ItemFactory[0].CreateExport().Value; newItem.Initialize(item, Model.Name, favoriteList); this.NavItems.Add(newItem); } _items.Source = this.NavItems; this.Width = this.CalculateWith(); RaisePropertyChanged(() => Items); }