MobileMenuButtonMenu.xaml.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Xamarin.Forms;
  7. using Xamarin.Forms.Xaml;
  8. namespace InABox.Mobile
  9. {
  10. [XamlCompilation(XamlCompilationOptions.Compile)]
  11. public partial class MobileMenuButtonMenu
  12. {
  13. public IList<MobileMenuEntry> Items => _viewModel.Items;
  14. public IList<MobileMenuEntry> VisibleItems => _viewModel.VisibleItems;
  15. public MobileMenuButtonMenu()
  16. {
  17. InitializeComponent();
  18. }
  19. private void TapGestureRecognizer_OnTapped(object sender, EventArgs e)
  20. {
  21. if ((sender as Label)?.BindingContext is MobileMenuItem item)
  22. item.DoClicked();
  23. }
  24. private void _viewModel_OnLayoutChanged(object sender, MobileMenuButtonLayoutChangedEventArgs args)
  25. {
  26. _menu.RowDefinitions.Clear();
  27. for (int i=0; i< args.RowCount; i++)
  28. _menu.RowDefinitions.Add(new RowDefinition() { Height = GridLength.Auto});
  29. }
  30. public event EventHandler ItemClicked;
  31. private void _viewModel_OnItemClicked(object sender, EventArgs e)
  32. {
  33. ItemClicked?.Invoke(this, EventArgs.Empty);
  34. }
  35. }
  36. }