MobileModuleItems.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Xamarin.Forms;
  5. namespace InABox.Mobile
  6. {
  7. public class MobileModuleItems : IEnumerable<IModuleMenuItem>
  8. {
  9. private ListView _parent;
  10. private List<IModuleMenuItem> _modules;
  11. private bool _updating;
  12. public IModuleMenuItem this[int index] => _modules[index];
  13. public MobileModuleItems(ListView parent)
  14. {
  15. _parent = parent;
  16. _modules = new List<IModuleMenuItem>();
  17. }
  18. private void Update()
  19. {
  20. if (_updating)
  21. return;
  22. _parent.ItemsSource = _modules.Where(x=>x.IsVisible);
  23. }
  24. // public ModuleMenuItems BeginUpdate()
  25. // {
  26. // _updating = true;
  27. // return this;
  28. // }
  29. //
  30. // public ModuleMenuItems EndUpdate()
  31. // {
  32. // _updating = false;
  33. // Update();
  34. // return this;
  35. // }
  36. //
  37. // public ModuleMenuItems Clear()
  38. // {
  39. // _modules.Clear();
  40. // Update();
  41. // return this;
  42. // }
  43. // public ModuleMenuItems Add(IModuleMenuItem module)
  44. // {
  45. // _modules.Add(module);
  46. // Update();
  47. // return this;
  48. // }
  49. public IEnumerator<IModuleMenuItem> GetEnumerator() => _modules.GetEnumerator();
  50. IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
  51. }
  52. }