using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using InABox.Core; using InABox.Mobile; using Syncfusion.SfDiagram.XForms; using Syncfusion.XForms.TreeView; using Xamarin.Forms; using Xamarin.Forms.Xaml; namespace PRS.Mobile { public class BookmarkConverter : UtilityConverter { public MeetingItemModel Model { get; set; } private static readonly ImageSource _hasminutes = ImageSource.FromFile("bookmark_green"); private static readonly ImageSource _nominutes = ImageSource.FromFile("bookmark_gray"); protected override ImageSource Convert(CoreTreeNode value) { var item = Model?.Items.FirstOrDefault(x => x.ID == value?.ID); return (String.IsNullOrWhiteSpace(item?.Minutes)) ? _nominutes : _hasminutes; } } [XamlCompilation(XamlCompilationOptions.Compile)] public partial class MeetingEditItemsView { public MeetingEditItemsView() { InitializeComponent(); } public override void Refresh() { BookmarkConverter.Model = ViewModel?.Items; _agenda.ItemsSource = ViewModel?.Items?.Agenda?.Nodes; } private void AgendaItem_Tapped(object sender, ItemSelectionChangedEventArgs e) { if (e.AddedItems.FirstOrDefault() is CoreTreeNode node) { var itemview = new MeetingEditItemView() { ViewModel = new MeetingItemEditViewModel() { Item = ViewModel.Items.FirstOrDefault(x => x.ID == node.ID) } }; Navigation.PushAsync(itemview); _agenda.SelectedItem = null; } } } }