MeetingEditItemsView.xaml.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using InABox.Core;
  7. using InABox.Mobile;
  8. using Syncfusion.SfDiagram.XForms;
  9. using Syncfusion.XForms.TreeView;
  10. using Xamarin.Forms;
  11. using Xamarin.Forms.Xaml;
  12. namespace PRS.Mobile
  13. {
  14. public class BookmarkConverter : UtilityConverter<CoreTreeNode, ImageSource>
  15. {
  16. public MeetingItemModel Model { get; set; }
  17. private static readonly ImageSource _hasminutes = ImageSource.FromFile("bookmark_green");
  18. private static readonly ImageSource _nominutes = ImageSource.FromFile("bookmark_gray");
  19. protected override ImageSource Convert(CoreTreeNode value)
  20. {
  21. var item = Model?.Items.FirstOrDefault(x => x.ID == value?.ID);
  22. return (String.IsNullOrWhiteSpace(item?.Minutes))
  23. ? _nominutes
  24. : _hasminutes;
  25. }
  26. }
  27. [XamlCompilation(XamlCompilationOptions.Compile)]
  28. public partial class MeetingEditItemsView
  29. {
  30. public MeetingEditItemsView()
  31. {
  32. InitializeComponent();
  33. }
  34. public override void Refresh()
  35. {
  36. BookmarkConverter.Model = ViewModel?.Items;
  37. _agenda.ItemsSource = ViewModel?.Items?.Agenda?.Nodes;
  38. }
  39. private void AgendaItem_Tapped(object sender, ItemSelectionChangedEventArgs e)
  40. {
  41. if (e.AddedItems.FirstOrDefault() is CoreTreeNode node)
  42. {
  43. var itemview = new MeetingEditItemView()
  44. {
  45. ViewModel = new MeetingItemEditViewModel()
  46. {
  47. Item = ViewModel.Items.FirstOrDefault(x => x.ID == node.ID)
  48. }
  49. };
  50. Navigation.PushAsync(itemview);
  51. _agenda.SelectedItem = null;
  52. }
  53. }
  54. }
  55. }