using Billing.Models; using Billing.UI; using System; using Xamarin.Forms; namespace Billing.Views; public partial class AddAccountPage : BillingPage { private static readonly BindableProperty AccountNameProperty = BindableProperty.Create(nameof(AccountName), typeof(string), typeof(AddAccountPage)); private static readonly BindableProperty AccountIconProperty = BindableProperty.Create(nameof(AccountIcon), typeof(string), typeof(AddAccountPage)); private static readonly BindableProperty CategoryProperty = BindableProperty.Create(nameof(Category), typeof(string), typeof(AddAccountPage)); private static readonly BindableProperty BalanceProperty = BindableProperty.Create(nameof(Balance), typeof(decimal), typeof(AddAccountPage)); private static readonly BindableProperty MemoProperty = BindableProperty.Create(nameof(Memo), typeof(string), typeof(AddAccountPage)); public string AccountName { get => (string)GetValue(AccountNameProperty); set => SetValue(AccountNameProperty, value); } public string AccountIcon { get => (string)GetValue(AccountIconProperty); set => SetValue(AccountIconProperty, value); } public string Category { get => (string)GetValue(CategoryProperty); set => SetValue(CategoryProperty, value); } public decimal Balance { get => (decimal)GetValue(BalanceProperty); set => SetValue(BalanceProperty, value); } public string Memo { get => (string)GetValue(MemoProperty); set => SetValue(MemoProperty, value); } private readonly Account account; public Command CheckAccount { get; } public event EventHandler AccountChecked; public AddAccountPage() { CheckAccount = new Command(OnCheckAccount); InitializeComponent(); } public AddAccountPage(Account account) { this.account = account; AccountName = account.Name; AccountIcon = account.Icon; Category = account.Category.ToString(); Balance = account.Balance; Memo = account.Memo; CheckAccount = new Command(OnCheckAccount); InitializeComponent(); } private void OnCheckAccount() { AccountChecked?.Invoke(this, new AccountEventArgs { Account = new Account { Id = account?.Id ?? -1, Name = AccountName, Icon = AccountIcon, //Category = Category, Balance = Balance, Memo = Memo } }); } } public class AccountEventArgs : EventArgs { public Account Account { get; set; } }