Ejemplo n.º 1
0
        public VehicleDetailsPage(
            Vehicle vehicle,
            IVehiclesService vehicleService,
            VehicleDetailsViewModel.Factory vehicleDetailsViewModelFactory
            )
        {
            InitializeComponent();

            Guid vehicleId = vehicle.Id;

            this.BindingContext = vehicleDetailsViewModelFactory.Invoke(vehicleService, vehicle);
        }
Ejemplo n.º 2
0
        public VehiclesListPage(MyWorldViewModel injectedMyWorldViewModel,
                                IVehiclesService injectedVehiclesService,
                                VehicleDetailsViewModel.Factory vehicleDetailsViewModelFactory,
                                VehicleDetailsPage.Factory vehicleDetailsPageFactory
                                )
        {
            InitializeComponent();

            this.BindingContext = injectedMyWorldViewModel;

            //Page appearing/disappearing events
            this.Appearing += (sender, args) =>
            {
                injectedMyWorldViewModel.Appearing();
            };

            //When any item-vehicle is clicked, need to show the Vehicle's Detail page
            ListViewVehicles.ItemTapped   += (sender, e) => ListViewVehicles.SelectedItem = null;
            ListViewVehicles.ItemSelected += async(sender, e) =>
            {
                var vehicle = ListViewVehicles.SelectedItem as Vehicle;

                if (vehicle == null)
                {
                    return;
                }

                VehicleDetailsPage vehicleDetailsPage = vehicleDetailsPageFactory.Invoke(vehicle,
                                                                                         injectedVehiclesService,
                                                                                         vehicleDetailsViewModelFactory);
                await PageNavigationController.PushAsync(Navigation,
                                                         vehicleDetailsPage);

                ListViewVehicles.SelectedItem = null;
            };
        }