MobileAccordion.xaml.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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 Newtonsoft.Json;
  8. using Xamarin.Forms;
  9. using Xamarin.Forms.Xaml;
  10. namespace InABox.Mobile
  11. {
  12. [XamlCompilation(XamlCompilationOptions.Compile)]
  13. public partial class MobileAccordion
  14. {
  15. public MobileAccordionItem SelectedItem => Items.FirstOrDefault(x => x.Visible);
  16. public event EventHandler SelectionChanged;
  17. public IList<MobileAccordionItem> Items { get; private set; }
  18. public MobileAccordion()
  19. {
  20. Items = new ObservableCollection<MobileAccordionItem>();
  21. InitializeComponent();
  22. BindableLayout.SetItemsSource(_stack, Items);
  23. }
  24. private void Header_Clicked(object sender, MobileButtonClickEventArgs args)
  25. {
  26. foreach (var item in Items)
  27. item.Visible = (item == args.Tag);
  28. SelectionChanged?.Invoke(this, EventArgs.Empty);
  29. }
  30. }
  31. }