MobileList.xaml.cs 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System;
  2. using System.Collections;
  3. using System.Linq;
  4. using System.Windows.Input;
  5. using Xamarin.Forms;
  6. using Xamarin.Forms.Xaml;
  7. using XF.Material.Forms.UI.Dialogs;
  8. namespace InABox.Mobile
  9. {
  10. public class MobileListRefreshEventArgs : EventArgs
  11. {
  12. }
  13. public delegate void MobileListRefreshEvent(object sender, MobileListRefreshEventArgs args);
  14. // public class MobileListDataTemplateSelector : DataTemplateSelector
  15. // {
  16. //
  17. // protected override DataTemplate OnSelectTemplate(object item, BindableObject container) => new DataTemplate(typeof(DeliveryListEntry));
  18. // }
  19. [XamlCompilation(XamlCompilationOptions.Compile)]
  20. public partial class MobileList
  21. {
  22. public bool PullToRefresh
  23. {
  24. get;
  25. set;
  26. }
  27. // public int RowHeight
  28. // {
  29. // get => _viewmodel.RowHeight;
  30. // set => _viewmodel.RowHeight = value;
  31. // }
  32. public DataTemplate ItemTemplate
  33. {
  34. get => BindableLayout.GetItemTemplate(_list);
  35. set => BindableLayout.SetItemTemplate(_list,value);
  36. }
  37. public IEnumerable ItemsSource
  38. {
  39. get => BindableLayout.GetItemsSource(_list);
  40. set => BindableLayout.SetItemsSource(_list,value);
  41. }
  42. public event MobileListRefreshEvent Refresh;
  43. public MobileList()
  44. {
  45. InitializeComponent();
  46. _refresher.Command = new Command(DoRefresh, CanRefresh);
  47. }
  48. private bool CanRefresh(object sender) => PullToRefresh;
  49. private void DoRefresh(object sender)
  50. {
  51. if (_refresher != null)
  52. {
  53. _refresher.IsRefreshing = true;
  54. Refresh?.Invoke(sender, new MobileListRefreshEventArgs());
  55. _refresher.IsRefreshing = false;
  56. }
  57. }
  58. private void Cell_OnTapped(object sender, EventArgs e)
  59. {
  60. //if (sender is ViewCell viewcell)
  61. // ItemTapped?.Invoke(viewcell.BindingContext, new MobileListItemTappedEventArgs());
  62. }
  63. // private void _list_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
  64. // {
  65. // if (e.CurrentSelection.Any())
  66. // {
  67. // ItemTapped?.Invoke(e.CurrentSelection.First(), new MobileListItemTappedEventArgs());
  68. // //_list.SelectedItem = null;
  69. // }
  70. // else
  71. // {
  72. // }
  73. //
  74. // }
  75. }
  76. }