101 lines
3.2 KiB
C#
101 lines
3.2 KiB
C#
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 Command SelectIcon { get; }
|
|
public Command SelectCategory { get; }
|
|
|
|
public event EventHandler<AccountEventArgs> AccountChecked;
|
|
|
|
public AddAccountPage()
|
|
{
|
|
CheckAccount = new Command(OnCheckAccount);
|
|
SelectIcon = new Command(OnSelectIcon);
|
|
SelectCategory = new Command(OnSelectCategory);
|
|
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
|
|
}
|
|
});
|
|
}
|
|
|
|
private void OnSelectIcon()
|
|
{
|
|
|
|
}
|
|
|
|
private void OnSelectCategory()
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
public class AccountEventArgs : EventArgs
|
|
{
|
|
public Account Account { get; set; }
|
|
}
|
|
} |