예제 #1
0
        public override void AddNewSubcat(BudgetSubcatEdit subcat)
        {
            var newSubcat = RealSubcat.Create(subcat.Name, subcat.Id);

            newSubcat.PropertyChanged += OnSubcatChanged;
            subcats.Add(newSubcat);
        }
        public BudgetTemplateEditPage()
        {
            AddSubcatCommand = new Command <BudgetCategoryForEdit>(category =>
            {
                var foundCategory = BudgetTemplate.FirstOrDefault(element => category.Id == element.Id);
                if (foundCategory != null)
                {
                    var newElement = new BudgetSubcatEdit {
                        Id = foundCategory.Count, IsNew = true
                    };
                    foundCategory.Add(newElement);

                    Device.BeginInvokeOnMainThread(() =>
                    {
                        listView.ScrollTo(newElement, ScrollToPosition.Center, false);
                        OnPropertyChanged(nameof(BudgetTemplate));
                    });
                }
            });

            BudgetTemplate = MainBudget.Instance.BudgetDescription.GetBudgetTemplateEdit();

            InitializeComponent();
            BindingContext = this;
        }
        private void SubcatEditViewCell_OnRemove(object sender, BudgetSubcatEdit subcat)
        {
            var name = subcat.Name;

            foreach (var category in BudgetTemplate)
            {
                var foundSubcat = category.FirstOrDefault(elem => elem.Id == subcat.Id && elem.Name == subcat.Name);
                if (foundSubcat != null)
                {
                    category.Remove(foundSubcat);
                }
            }
            Device.BeginInvokeOnMainThread(() =>
            {
                OnPropertyChanged(nameof(BudgetTemplate));
            });
        }
예제 #4
0
 public abstract void AddNewSubcat(BudgetSubcatEdit subcat);