Iyon_Groznyy

Untitled

Oct 5th, 2021
714
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.31 KB | None | 0 0
  1. using Haski.Core.Common;
  2. using Haski.Core.Extensions.Forms;
  3. using Haski.Core.Extensions.MvvmCross;
  4. using Haski.Core.UI.Converters;
  5. using Haski.Core.UI.MvvmCrossBindings;
  6. using Haski.Core.ViewModels.Main.ProjectManager.Items;
  7.  
  8. using Xamarin.Forms;
  9. using Xamarin.Forms.Xaml;
  10.  
  11. namespace Haski.Core.UI.Pages.Main.ProjectManager.Items
  12. {
  13.     [XamlCompilation(XamlCompilationOptions.Compile)]
  14.     public partial class OrderItemComponent : AbsoluteLayout
  15.     {
  16.         private ViewBinder<OrderItemComponentViewModel> _viewBinder;
  17.  
  18.         public OrderItemComponent()
  19.         {
  20.             InitializeComponent();
  21.  
  22.             _viewBinder = this.CreateViewBinder<OrderItemComponentViewModel>(Bind);
  23.         }
  24.  
  25.         protected override void OnBindingContextChanged()
  26.         {
  27.             base.OnBindingContextChanged();
  28.  
  29.             if(BindingContext is not OrderItemComponentViewModel itemViewModel)
  30.             {
  31.                 return;
  32.             }
  33.  
  34.             OrderTitle.Text = itemViewModel.OrderTitle;
  35.             OrderAdress.Text = itemViewModel.OrderAdress;
  36.             Date.Text = itemViewModel.Date;
  37.             PhoneNumber.Text = itemViewModel.PhoneNumber;
  38.             DateFrame.IsVisible = itemViewModel.Date is not null;
  39.             PriceFrame.IsVisible = itemViewModel.Price is not null;
  40.             PhoneNumberFrame.IsVisible = itemViewModel.PhoneNumber is not null;
  41.  
  42.             if (itemViewModel.IsPaid is bool value && value)
  43.             {
  44.                 IsPaid.Text = "ОПЛАЧЕННЫЙ";
  45.                 IsPaid.TextColor = Constants.Colors.AvagduGreen;
  46.                 IsPaidFrame.BackgroundColor = Constants.Colors.MistyLawn;
  47.  
  48.             }
  49.             else
  50.             {
  51.                 IsPaid.Text = "НЕОПЛАЧЕННЫЙ";
  52.                 IsPaid.TextColor = Constants.Colors.Bittersweet;
  53.                 IsPaidFrame.BackgroundColor = Constants.Colors.UnburdenedPink;
  54.  
  55.                 if (itemViewModel.IsPaid is null)
  56.                 {
  57.                     IsPaidFrame.IsVisible = false;
  58.                 }
  59.             }
  60.         }
  61.  
  62.         private void Bind()
  63.         {
  64.             using var bindingSet = _viewBinder.CreateBindingSet();
  65.  
  66.             bindingSet.Bind(Price).For(v => v.Text).To(vm => vm.Price)
  67.                 .WithConversion<PriceConverter>();
  68.         }
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment