Compare commits

..

2 Commits

Author SHA1 Message Date
99640602f5 Leere Liste nur in GUI 2025-06-02 16:36:48 +02:00
5b2b05ed55 Löschen Knopf 2025-06-02 16:26:06 +02:00
3 changed files with 51 additions and 3 deletions

View File

@@ -21,6 +21,11 @@ class FahrzeugeModell
return fahrzeugListe; return fahrzeugListe;
} }
public void LoescheFahrzeug(Fahrzeug fahrzeug)
{
_repository.LoescheFahrzeug(fahrzeug.Id);
}
private IEnumerable<Fahrzeug> KonvertiereFahrzeuge(IEnumerable<FahrzeugDTO> fahrzeugs) private IEnumerable<Fahrzeug> KonvertiereFahrzeuge(IEnumerable<FahrzeugDTO> fahrzeugs)
{ {
return fahrzeugs.Select(fahrzeug => KonvertiereFahrzeuf(fahrzeug)); return fahrzeugs.Select(fahrzeug => KonvertiereFahrzeuf(fahrzeug));

View File

@@ -8,7 +8,13 @@
d:DataContext="{d:DesignInstance Type=local:MainWindowViewModel, IsDesignTimeCreatable=False}" d:DataContext="{d:DesignInstance Type=local:MainWindowViewModel, IsDesignTimeCreatable=False}"
Title="{Binding Path=MainWindowTitle}" Height="450" Width="800"> Title="{Binding Path=MainWindowTitle}" Height="450" Width="800">
<StackPanel> <StackPanel>
<DataGrid Name="dgTest" <Menu>
<MenuItem Header="Liste">
<MenuItem Header="Liste leeren"
Command="{Binding Path=LeerenKommando}"/>
</MenuItem>
</Menu>
<DataGrid x:Name="fahrzeugTabelle"
CanUserAddRows="False" CanUserAddRows="False"
CanUserDeleteRows="False" CanUserDeleteRows="False"
CanUserSortColumns="True" CanUserSortColumns="True"
@@ -18,6 +24,13 @@
<DataGrid.Columns> <DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Path=Id}"/> <DataGridTextColumn Header="ID" Binding="{Binding Path=Id}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"/> <DataGridTextColumn Header="Name" Binding="{Binding Path=Name}"/>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Command="{Binding ElementName=fahrzeugTabelle, Path=DataContext.LoeschenKommando}" CommandParameter="{Binding}">Löschen</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>

View File

@@ -1,6 +1,8 @@
using FahrzeugDatenBank; using FahrzeugDatenBank;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Timers; using System.Timers;
using System.Windows;
using System.Windows.Input;
namespace FahzeugWPF; namespace FahzeugWPF;
@@ -19,11 +21,21 @@ class MainWindowViewModel : ViewModelBase
this._timer.Start(); this._timer.Start();
this._model = modell; this._model = modell;
this.InitialisiereDasViewModell(); this.InitialisiereDasViewModell();
this.LoeschenKommando = new RelayCommand(LoescheFahrzeug);
this.LeerenKommando = new RelayCommand(LeereListe);
} }
public string MainWindowTitle { get { return _mainWindowTitle; } set { public ICommand LoeschenKommando { get; private set; }
public ICommand LeerenKommando { get; private set; }
public string MainWindowTitle
{
get { return _mainWindowTitle; }
set
{
SetProperty<string>(ref _mainWindowTitle, value); SetProperty<string>(ref _mainWindowTitle, value);
} } }
}
public ObservableCollection<Fahrzeug> Fahrzeuge { get; } = new ObservableCollection<Fahrzeug>(); public ObservableCollection<Fahrzeug> Fahrzeuge { get; } = new ObservableCollection<Fahrzeug>();
@@ -40,4 +52,22 @@ class MainWindowViewModel : ViewModelBase
{ {
this.MainWindowTitle = $"Fahrzeuge {DateTime.Now.ToLongTimeString()}"; this.MainWindowTitle = $"Fahrzeuge {DateTime.Now.ToLongTimeString()}";
} }
private void LoescheFahrzeug(object? fahrzeug)
{
if (fahrzeug == null) return;
_model.LoescheFahrzeug((Fahrzeug)fahrzeug);
this.Fahrzeuge.Remove((Fahrzeug)fahrzeug);
}
private async void LeereListe(object? o)
{
await Task.Run(() =>
{
Application.Current.Dispatcher.Invoke(() =>
{
this.Fahrzeuge.Clear();
});
});
}
} }