MobileAccordion.xaml.cs 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections.ObjectModel;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using Xamarin.Forms;
  8. using Xamarin.Forms.Xaml;
  9. namespace InABox.Mobile
  10. {
  11. [XamlCompilation(XamlCompilationOptions.Compile)]
  12. public partial class MobileAccordion
  13. {
  14. public MobileAccordionItem SelectedItem => Items.FirstOrDefault(x => x.Visible);
  15. public event EventHandler SelectionChanged;
  16. public IList<MobileAccordionItem> Items { get; private set; }
  17. public MobileAccordion()
  18. {
  19. Items = new ObservableCollection<MobileAccordionItem>();
  20. InitializeComponent();
  21. BindableLayout.SetItemsSource(_stack, Items);
  22. }
  23. private void Header_Clicked(object sender, MobileButtonClickEventArgs args)
  24. {
  25. foreach (var item in Items)
  26. item.Visible = (item == args.Tag);
  27. SelectionChanged?.Invoke(this, EventArgs.Empty);
  28. }
  29. }
  30. }