Files
csharp-uebung/FahzeugWPF/MainWindowViewModel.cs
2025-06-02 16:26:06 +02:00

60 lines
1.6 KiB
C#

using FahrzeugDatenBank;
using System.Collections.ObjectModel;
using System.Timers;
using System.Windows.Input;
namespace FahzeugWPF;
class MainWindowViewModel : ViewModelBase
{
private readonly FahrzeugeModell _model;
private string _mainWindowTitle = "Fahrzeuge";
private System.Timers.Timer _timer = new System.Timers.Timer()
{
Interval = 1000,
};
public MainWindowViewModel(FahrzeugeModell modell)
{
this._timer.Elapsed += _timer_Elapsed;
this._timer.Start();
this._model = modell;
this.InitialisiereDasViewModell();
this.LoeschenKommando = new RelayCommand(LoescheFahrzeug);
}
public ICommand LoeschenKommando { get; private set; }
public string MainWindowTitle
{
get { return _mainWindowTitle; }
set
{
SetProperty<string>(ref _mainWindowTitle, value);
}
}
public ObservableCollection<Fahrzeug> Fahrzeuge { get; } = new ObservableCollection<Fahrzeug>();
private async void InitialisiereDasViewModell()
{
var fahrzeuge = await _model.LadeAlleFahrzeuge();
foreach (var fahrzeug in fahrzeuge)
{
this.Fahrzeuge.Add(fahrzeug);
}
}
private void _timer_Elapsed(object? sender, ElapsedEventArgs e)
{
this.MainWindowTitle = $"Fahrzeuge {DateTime.Now.ToLongTimeString()}";
}
private void LoescheFahrzeug(object? fahrzeug)
{
if (fahrzeug == null) return;
_model.LoescheFahrzeug((Fahrzeug)fahrzeug);
this.Fahrzeuge.Remove((Fahrzeug)fahrzeug);
}
}