public async Task TestSendTargetSelected() { var menu = new NavigationMenu(); var navForm = new NavigationPage(); await navForm.PushAsync(new ContentPage { Title = "Menu", Content = menu }); bool pushed = false; navForm.Pushed += (sender, arg) => pushed = true; var child = new ContentPage { Icon = "img.jpg", Content = new View() }; menu.Add(child); menu.SendTargetSelected(child); Assert.True(pushed); Assert.AreEqual(child, navForm.CurrentPage); }
public override AView GetView(int position, AView convertView, ViewGroup parent) { MenuElementView menuItem = convertView as MenuElementView ?? new MenuElementView(parent.Context); Page item = this[position]; menuItem.Icon = item.Icon; menuItem.Name = item.Title; menuItem.OnSelected = () => _menu.SendTargetSelected(item); return(menuItem); }
public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath) { var cell = (NavigationCell)collectionView.DequeueReusableCell(new NSString("NavigationCell"), indexPath); var target = _menu.Targets.Skip(indexPath.Row).FirstOrDefault(); if (target != null) { cell.Name = target.Title; cell.Icon = target.Icon; cell.Selected = () => _menu.SendTargetSelected(target); } else { cell.Selected = null; cell.Icon = ""; cell.Name = ""; } return(cell); }
public override NSCollectionViewItem GetItem(NSCollectionView collectionView, NSIndexPath indexPath) { // No view recycling on Mac //var navigationCell = (NavigationMenuRenderer.NavigationCell)collectionView.DequeueReusableCell (new NSString ("NavigationCell"), indexPath); var navigationCell = new NavigationMenuRenderer.NavigationCell(collectionView.Frame); var target = menu.Targets.Skip((int)indexPath.Item).FirstOrDefault(); if (target != null) { navigationCell.Name = target.Title; navigationCell.Icon = (string)target.Icon; navigationCell.Selected = (Action)(() => menu.SendTargetSelected(target)); } else { navigationCell.Selected = (Action)null; navigationCell.Icon = ""; navigationCell.Name = ""; } return(navigationCell); }