using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; using Xamarin.Forms.Xaml; namespace InABox.Mobile { public class MobileMenuButtonMenuItem : BindableObject { public String Text { get; set; } public event EventHandler Clicked; public void DoClicked() { Clicked?.Invoke(this, EventArgs.Empty); } } public class MobileMenuButtonMenuViewModel : BindableObject { public IList Items { get; private set; } public MobileMenuButtonMenuViewModel() { Items = new ObservableCollection(); } } [XamlCompilation(XamlCompilationOptions.Compile)] public partial class MobileMenuButtonMenu { public IList Items => _viewModel.Items; public MobileMenuButtonMenu() { InitializeComponent(); } private void TapGestureRecognizer_OnTapped(object sender, EventArgs e) { if ((sender as Label)?.BindingContext is MobileMenuButtonMenuItem item) item.DoClicked(); } } }