GrayMP

Untitled

Feb 3rd, 2018
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.75 KB | None | 0 0
  1. // Задумка такая. Это методы ViewCell. Она должна знать свой биндинг-контекст. Я его пытаюсь получить, понять что за конкретно вьюмодель у меня. И вызываю цепь методов (пока что два). Если какой-то вернул не нулл - там куча условий снаружи оборвут процедуру и радостно вернут грид
  2. // всё очень плохо, я уже не знал что делать
  3. private Grid TryCreateOrderGridByViewModel(TransportCompanyItemViewModelBase viewModel)
  4.         {
  5.             var orderViewModel = viewModel as OrderTransportCompanyItemViewModel;
  6.             if (orderViewModel == null)
  7.             {
  8.                 return null;
  9.             }
  10.  
  11.             var grid = CreateBasicGrid();
  12.             grid.Children.Add(CreateRatingImage(), 0, 0);
  13.             grid.Children.Add(CreatePriceLabel(), 1, 0);
  14.             grid.Children.Add(CreateDeliveryEstimateLabel(), 2, 0);
  15.  
  16.             var makeOrderButton = new Button()
  17.             {
  18.                 Text = "Заказать",
  19.                 HorizontalOptions = LayoutOptions.FillAndExpand
  20.             };
  21.  
  22.             makeOrderButton.SetBinding(Button.CommandProperty, new Binding("CreateOrderCommand"));
  23.  
  24.             grid.Children.Add(CreateDeliveryEstimateLabel(), 3, 0);
  25.  
  26.             return grid;
  27.         }
  28.  
  29.         private Grid TryCreateCalculatorGridByViewModel(TransportCompanyItemViewModelBase viewModel)
  30.         {
  31.             var calculatorViewModel = viewModel as CalculatorTransportCompanyItemViewModel;
  32.             if (calculatorViewModel == null)
  33.             {
  34.                 return null;
  35.             }
  36.  
  37.             var grid = CreateBasicGrid();
  38.             grid.Children.Add(CreateRatingImage(), 0, 0);
  39.             grid.Children.Add(CreatePriceLabel(), 1, 0);
  40.             grid.Children.Add(CreateDeliveryEstimateLabel(), 2, 0);
  41.  
  42.             return grid;
  43.         }
Advertisement
Add Comment
Please, Sign In to add comment