Código C# para Gestionar Coches en .NET MAUI: Mostrar, Insertar, Actualizar y Eliminar
Gestión de coches en .NET MAUI con C#
A continuación se muestra el código de una aplicación básica que permite mostrar, insertar, actualizar y eliminar coches utilizando C# y .NET MAUI.
1. Página para mostrar coches (MostrarCochePage)
namespace Coches;
public partial class MostrarCochePage : ContentPage
{
public MostrarCochePage()
{
InitializeComponent();
DatosCompartidos.listCoches.AddRange(new List<Coches>
{
new Coches { Id = "1", Km = "30.000", Marca = "Ferrari", Modelo = "LaFerrari", Fecha = new DateTime(2025, 4, 3) },
});
CollectionListado.ItemsSource = DatosCompartidos.listCoches;
}
protected override void OnAppearing()
{
base.OnAppearing();
CollectionListado.ItemsSource = null;
CollectionListado.ItemsSource = DatosCompartidos.listCoches;
}
// Esto sirve para modificar
private async void ActualizarCoche_Clicked(object sender, EventArgs e)
{
if ((sender as Button)?.CommandParameter is Coches coche)
await Navigation.PushAsync(new ActualizarCochePage(coche));
}
}
2. Página para actualizar coches (ActualizarCochePage)
{
private Coches cocheAEditar;
public ActualizarCochePage(Coches coche)
{
InitializeComponent();
cocheAEditar = coche;
string Id = entryID.Text;
string Km = entryKm.Text;
entryKm.Text = coche.Km;
pickerMarca.SelectedItem = coche.Marca;
entryModelo.Text = coche.Modelo;
datePickerFecha.Date = coche.Fecha;
}
private async void BotonActualizar_Clicked(object sender, EventArgs e)
{
cocheAEditar.Km = entryKm.Text;
cocheAEditar.Marca = pickerMarca.SelectedItem?.ToString() ?? "";
cocheAEditar.Modelo = entryModelo.Text;
cocheAEditar.Fecha = datePickerFecha.Date;
await DisplayAlert("Actualizado", "El coche ha sido actualizado", "OK");
await Shell.Current.GoToAsync("//CollectionListado");
}
}
3. Página para insertar coches (InsertarCochePage)
{
public InsertarCochePage()
{
InitializeComponent();
}
private async void botonInsertarCoche_Clicked(object sender, EventArgs e)
{
string Id = entryID.Text;
string Km = entryKm.Text;
string Marca = pickerMarca.SelectedItem?.ToString() ?? "";
string Modelo = entryModelo.Text;
DateTime Fecha = datePickerFecha.Date;
Coches nuevoCoche = new Coches
{
Id = Id,
Km = Km,
Marca = Marca,
Modelo = Modelo,
Fecha = Fecha,
};
DatosCompartidos.listCoches.Add(nuevoCoche);
await DisplayAlert("Insertado", "El vehículo ha sido insertado correctamente", "OK");
await Shell.Current.GoToAsync("//CollectionListado");
}
}
4. Página para eliminar coches (EliminarCochePage)
namespace Coches;
public partial class EliminarCochePage : ContentPage
{
public EliminarCochePage()
{
InitializeComponent();
}
private async void botonEliminarCoche_Clicked(object sender, EventArgs e)
{
string Id = entryIDEliminar.Text;
var Coches = DatosCompartidos.listCoches.FirstOrDefault(co => co.Id == Id);
if (Coches != null)
{
DatosCompartidos.listCoches.Remove(Coches);
await DisplayAlert("Eliminado", "Se ha eliminado el coche correctamente", "OK");
}
else
{
await DisplayAlert("No encontrado", "No se ha encontrado el coche con ese ID", "SALIR");
}
}
}