53 lines
2.0 KiB
C#
53 lines
2.0 KiB
C#
using System.Collections.ObjectModel;
|
|
using Billing.Models;
|
|
using Billing.UI;
|
|
using Xamarin.Forms;
|
|
|
|
namespace Billing.Views
|
|
{
|
|
public partial class AccountPage : BillingPage
|
|
{
|
|
private static readonly BindableProperty BalanceProperty = BindableProperty.Create(nameof(Balance), typeof(decimal), typeof(AccountPage));
|
|
private static readonly BindableProperty AssetProperty = BindableProperty.Create(nameof(Asset), typeof(decimal), typeof(AccountPage));
|
|
private static readonly BindableProperty LiabilityProperty = BindableProperty.Create(nameof(Liability), typeof(decimal), typeof(AccountPage));
|
|
private static readonly BindableProperty AccountsProperty = BindableProperty.Create(nameof(Accounts), typeof(ObservableCollection<Account>), typeof(AccountPage));
|
|
|
|
public decimal Balance => (decimal)GetValue(BalanceProperty);
|
|
public decimal Asset => (decimal)GetValue(AssetProperty);
|
|
public decimal Liability => (decimal)GetValue(LiabilityProperty);
|
|
public ObservableCollection<Account> Accounts => (ObservableCollection<Account>)GetValue(AccountsProperty);
|
|
|
|
public Command AddAccount { get; }
|
|
|
|
private readonly ObservableCollection<Account> accounts;
|
|
|
|
public AccountPage()
|
|
{
|
|
AddAccount = new Command(OnAddAccount);
|
|
accounts = new ObservableCollection<Account>();
|
|
SetValue(AccountsProperty, accounts);
|
|
|
|
InitializeComponent();
|
|
}
|
|
|
|
private async void OnAddAccount()
|
|
{
|
|
if (Tap.IsBusy)
|
|
{
|
|
return;
|
|
}
|
|
using (Tap.Start())
|
|
{
|
|
var page = new AddAccountPage();
|
|
page.AccountChecked += AccountChecked;
|
|
await Navigation.PushAsync(page);
|
|
}
|
|
}
|
|
|
|
private void AccountChecked(object sender, AccountEventArgs e)
|
|
{
|
|
Helper.Debug(e.Account.ToString());
|
|
accounts.Add(e.Account);
|
|
}
|
|
}
|
|
} |