using System.Collections.ObjectModel; using System.ComponentModel; using System.Runtime.CompilerServices; namespace YOUserbase; public partial class GroupOverviewPage : ContentPage { public int _index = 0; private string details; private string name; public string Details { get => details; set => SetProperty(ref details, value); } public string Name { get => name; set => SetProperty(ref name, value); } public GroupOverviewPage() { InitializeComponent(); groups.ItemsSource = Data.Groups; } private async void OnAdd(object sender, EventArgs e) { await Navigation.PushAsync(new CreateGroupPage()); } private async void OnDeleteItem(object sender, EventArgs e) { Button btn = (Button) sender; var id = Int32.Parse(btn.ClassId); var group = Data.Groups.FirstOrDefault(usr => usr.Id == id); var action = await DisplayAlert("Irreversible action", "Do you really want to delete this group?\nThis will also delete every User that that belongs to this group", "Yes", "No"); if(action) { while(Data.Users.FirstOrDefault(usr => usr.WorkingGroup == group) != null) { Data.Users.Remove(Data.Users.FirstOrDefault(usr => usr.WorkingGroup == group)); } Data.Groups.Remove(group); } } private async void OnEditItem(object sender, EventArgs e) { Button btn = (Button) sender; var id = Int32.Parse(btn.ClassId); var group = Data.Groups.FirstOrDefault(usr => usr.Id == id); Console.WriteLine("there"); await Navigation.PushAsync(new CreateGroupPage(group)); Console.WriteLine("and there"); } protected bool SetProperty(ref T field, T newValue, [CallerMemberName] string propertyName = null) { if(!Equals(field, newValue)) { field = newValue; return true; } return false; } }