, когда пользователь нажимает «Аренда автомобиля», он должен отображать выбранную машину в корзине, но проблема в том, что она не появляется
Примечания: это приложение-оболочка, содержащее две страницы: все машины и корзина
All Cars - это список, содержащий объекты автомобиля, у которого есть ModelName / Image / price / viewbox для цвета и кнопка Called Car, когда она нажата, она должна отправить машину (без выбора ее в списке) в корзину
Страница корзины имеет тот же listView с объектами, но кнопка, которая называется удалить машину, удалит машину из корзины
removeCommand работает, но проблема в RentCommand
public class CarViewModel
{
public List<Car> cars { get; set; }
public ObservableCollection<Car> Cars;
public Command<Car> RemoveCommand
{
get
{
return new Command<Car>((Car) => {
App.rent.Delete<Car>(Car.id);
Cars.Remove(Car);
});
}
}
public Command<Car> RentCommand
{
get
{
return new Command<Car>((Car) => {
App.rent.Insert(Car);
Cars.Add(Car);
});
}
}
public CarViewModel()
{
cars = CarDB();
Cars = new ObservableCollection<Car>();
List<Car> temp = App.rent.Query<Car>("select * from Car");
for (int i = 0; i < temp.Count; i++)
Cars.Add(temp[i]);
}
public List<Car> CarDB()
{
cars = App.db.Query<Car>("select * from Car");
if (cars.Count == 0)
{
App.db.Insert(new Car { carModel = "Toyota Camry", year = 2020, price = 24425, image = "camry.png", carColor = "#7F7F7F" });
App.db.Insert(new Car { carModel = "Jeep Grand Cherokee", year = 2018, price = 24990, image = "jeep.png", carColor = "#7F7F7F" });
App.db.Insert(new Car { carModel = "Honda Accord", year = 2020, price = 20832, image = "honda.png", carColor = "#0080FF" });
App.db.Insert(new Car { carModel = "Ford Mustang", year = 2020, price = 35630, image = "ford.png", carColor = "#FF8000" });
App.db.Insert(new Car { carModel = "Subaru Outback", year = 2017, price = 24425, image = "subaru.png", carColor = "#FFFFFF" });
}
return (List<Car>)App.db.Query<Car>("select * from Car");
}
}
Нажатая кнопка обработчика событий в AllCarPage.xaml.cs в папке представления
private void Button_Clicked(object sender, EventArgs e)
{
var button = sender as Button;
var car = button.BindingContext as Car;
var vm = BindingContext as CarViewModel;
vm.RentCommand.Execute(car);
}
Нажатая кнопка обработчика событий в папке Basket.xaml.cs в представлении
private void Button_Clicked(object sender, EventArgs e)
{
var button = sender as Button;
var car = button.BindingContext as Car;
var vm = BindingContext as CarViewModel;
vm.RemoveCommand.Execute(car);
}