DataGridHost.xaml.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Xamarin.Forms;
  7. using Xamarin.Forms.Xaml;
  8. namespace comal.timesheets
  9. {
  10. public delegate void DataGridHostSaved(List<DataGridViewModelItem> selecteditems);
  11. [XamlCompilation(XamlCompilationOptions.Compile)]
  12. public partial class DataGridHost : ContentPage
  13. {
  14. public event DataGridHostSaved OnSaved;
  15. public MobileDataGrid DataGrid { get; set; }
  16. public DataGridHost(MobileDataGrid datagrid)
  17. {
  18. InitializeComponent();
  19. NavigationPage.SetHasBackButton(this, false);
  20. DataGrid = datagrid;
  21. datagrid.OnOptionsSet += Datagrid_OnTitleSet;
  22. stackLayout.Children.Add(datagrid);
  23. }
  24. private void Datagrid_OnTitleSet(string title, DataGridSaveType savetype)
  25. {
  26. Device.BeginInvokeOnMainThread(() =>
  27. {
  28. titleLbl.Text = title + " List";
  29. saveBtn.IsVisible = savetype == DataGridSaveType.None ? false : true;
  30. });
  31. }
  32. private void CancelBtn_Clicked(object sender, EventArgs e)
  33. {
  34. Navigation.PopAsync();
  35. }
  36. private void SaveBtn_Clicked(object sender, EventArgs e)
  37. {
  38. OnSaved?.Invoke(CreateSelectedList());
  39. }
  40. private List<DataGridViewModelItem> CreateSelectedList()
  41. {
  42. var list = DataGrid.Items.Where(x => x.IsSelected == true);
  43. List<DataGridViewModelItem> newlist = new List<DataGridViewModelItem>();
  44. foreach (var item in list)
  45. {
  46. newlist.Add(item);
  47. }
  48. return newlist;
  49. }
  50. }
  51. }