async void ExecuteAddPerkAsync(object obj) { var nav = DependencyService.Get <INavigationService>(); var vm = new AddPerkViewModel(this); await nav.Navigate(vm); }
async void ExecuteEditPerkAsync(object obj) { var vm = obj as AddPerkViewModel; if (vm != null) { var edit = new AddPerkViewModel(this, vm.GetModel()); var nav = DependencyService.Get <INavigationService>(); await nav.Navigate(edit); } }
void OnPerkSaved(AddPerkViewModel obj) { var match = this.Perks.FirstOrDefault(x => x.Id == obj.Id); if (match != null) { var idx = this.Perks.IndexOf(match); this.Perks.RemoveAt(idx); this.Perks.Insert(idx, obj); } else if (obj.Vehicle == this) { this.Perks.Add(obj); } this.RaiseAllPropertiesChanged(); }
// restore data public AddVehicleViewModel(AddTeamViewModel team, UserVehicle userVehicle) : this(team) { this.Id = userVehicle.Id; this.Name = userVehicle.VehicleName; this.VehicleType = new SelectVehicleViewModel(this, userVehicle.VehicleType); //this.SelectedVehicleType = this.VehicleTypes.FirstOrDefault(x => x.vtype == userVehicle.VehicleType?.vtype); this.Weapons.Clear(); foreach (var w in userVehicle.Weaposn) { var vm = new AddWeaponViewModel(this, w); this.Weapons.Add(vm); } this.Perks.Clear(); foreach (var p in userVehicle.Perks) { var vm = new AddPerkViewModel(this, p); this.Perks.Add(vm); } this.Upgrades.Clear(); foreach (var u in userVehicle.Upgrades) { var vm = new AddUpgradeViewModel(this, u); this.Upgrades.Add(vm); } this.Trailers.Clear(); foreach (var t in userVehicle.Trailers) { var vm = new AddTrailerViewModel(this, t.Trailer, t.Cargo); this.Trailers.Add(vm); // run trailer support logic this.AddTrailerSupport(); } // todo: restore }