Einfugen neuer

This commit is contained in:
2025-06-02 17:16:38 +02:00
parent 99640602f5
commit 8813c83ed9
7 changed files with 96 additions and 1 deletions

View File

@@ -23,6 +23,8 @@ namespace FahzeugWPF
services.AddScoped<IKonfigurationsleser>(sp => new Konfigurationsleser(configuration)); services.AddScoped<IKonfigurationsleser>(sp => new Konfigurationsleser(configuration));
services.AddScoped(sp => new FahrzeugRepository(sp.GetRequiredService<IKonfigurationsleser>().LiesDBVerebindung())); services.AddScoped(sp => new FahrzeugRepository(sp.GetRequiredService<IKonfigurationsleser>().LiesDBVerebindung()));
services.AddScoped<FahrzeugeModell>(); services.AddScoped<FahrzeugeModell>();
services.AddScoped<EinfuegenModel>();
services.AddScoped<EinfuegenWindow>();
services.AddSingleton<MainWindowViewModel>(); services.AddSingleton<MainWindowViewModel>();
services.AddSingleton<MainWindow>(); services.AddSingleton<MainWindow>();

View File

@@ -0,0 +1,29 @@
using System.Windows;
using System.Windows.Input;
namespace FahzeugWPF;
class EinfuegenModel : ViewModelBase
{
private readonly FahrzeugeModell _fahrzeugeModell;
public EinfuegenModel(FahrzeugeModell model)
{
this._fahrzeugeModell = model;
EinfuegenKommando = new RelayCommand(Einfugen);
}
public string NeuesrFahrzeugName { get; set; }
public string NeuerFahrzeugTyp { get; set; }
public ICommand EinfuegenKommando { get; private set; }
private void Einfugen(object? o)
{
if (string.IsNullOrEmpty(NeuerFahrzeugTyp) || string.IsNullOrEmpty(NeuesrFahrzeugName)) { return; }
_fahrzeugeModell.EinfuegenFahrzeug(NeuesrFahrzeugName, NeuerFahrzeugTyp);
if (o is Window window)
{
window.Close();
}
}
}

View File

@@ -0,0 +1,17 @@
<Window x:Class="FahzeugWPF.EinfuegenWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:FahzeugWPF"
mc:Ignorable="d"
x:Name="EinfuegenFenster"
Title="Fahrzeug Einfuegen" Height="300" Width="500">
<StackPanel>
<TextBlock Margin="1" Text="Neuse Fahrzeug" VerticalAlignment="Top" />
<TextBox HorizontalAlignment="Left" Margin="1" TextWrapping="Wrap" Width="498" Text="{Binding Path=NeuesrFahrzeugName}" />
<TextBlock Margin="1" Text="Fahrzeugtyp" VerticalAlignment="Top"/>
<TextBox HorizontalAlignment="Left" Margin="1" TextWrapping="Wrap" Width="498" Text="{Binding Path=NeuerFahrzeugTyp}"/>
<Button Content="Einfügen" HorizontalAlignment="Left" Margin="1" VerticalAlignment="Top" Command="{Binding Path=EinfuegenKommando}" CommandParameter="{Binding ElementName=EinfuegenFenster}"/>
</StackPanel>
</Window>

View File

@@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace FahzeugWPF
{
/// <summary>
/// Interaction logic for EinfuegenWindow.xaml
/// </summary>
public partial class EinfuegenWindow : Window
{
public EinfuegenWindow()
{
InitializeComponent();
}
}
}

View File

@@ -26,6 +26,11 @@ class FahrzeugeModell
_repository.LoescheFahrzeug(fahrzeug.Id); _repository.LoescheFahrzeug(fahrzeug.Id);
} }
public void EinfuegenFahrzeug(string faName, string faType)
{
_repository.FuegeFahrzeugEin(faName, faType);
}
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

@@ -13,6 +13,7 @@
<MenuItem Header="Liste leeren" <MenuItem Header="Liste leeren"
Command="{Binding Path=LeerenKommando}"/> Command="{Binding Path=LeerenKommando}"/>
</MenuItem> </MenuItem>
<MenuItem Header="Einfügen" Command="{Binding Path=Einfugen}"/>
</Menu> </Menu>
<DataGrid x:Name="fahrzeugTabelle" <DataGrid x:Name="fahrzeugTabelle"
CanUserAddRows="False" CanUserAddRows="False"

View File

@@ -1,4 +1,5 @@
using FahrzeugDatenBank; using FahrzeugDatenBank;
using Microsoft.Extensions.DependencyInjection;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Timers; using System.Timers;
using System.Windows; using System.Windows;
@@ -23,10 +24,12 @@ class MainWindowViewModel : ViewModelBase
this.InitialisiereDasViewModell(); this.InitialisiereDasViewModell();
this.LoeschenKommando = new RelayCommand(LoescheFahrzeug); this.LoeschenKommando = new RelayCommand(LoescheFahrzeug);
this.LeerenKommando = new RelayCommand(LeereListe); this.LeerenKommando = new RelayCommand(LeereListe);
this.Einfugen = new RelayCommand(EinfugenMachen);
} }
public ICommand LoeschenKommando { get; private set; } public ICommand LoeschenKommando { get; private set; }
public ICommand LeerenKommando { get; private set; } public ICommand LeerenKommando { get; private set; }
public ICommand Einfugen { get; private set; }
public string MainWindowTitle public string MainWindowTitle
{ {
@@ -55,7 +58,8 @@ class MainWindowViewModel : ViewModelBase
private void LoescheFahrzeug(object? fahrzeug) private void LoescheFahrzeug(object? fahrzeug)
{ {
if (fahrzeug == null) return; if (fahrzeug == null)
return;
_model.LoescheFahrzeug((Fahrzeug)fahrzeug); _model.LoescheFahrzeug((Fahrzeug)fahrzeug);
this.Fahrzeuge.Remove((Fahrzeug)fahrzeug); this.Fahrzeuge.Remove((Fahrzeug)fahrzeug);
} }
@@ -70,4 +74,14 @@ class MainWindowViewModel : ViewModelBase
}); });
}); });
} }
private void EinfugenMachen(object? o)
{
var einfuege = App.ServiceProvider.GetService<EinfuegenWindow>();
einfuege.DataContext = App.ServiceProvider.GetService<EinfuegenModel>();
einfuege.ShowDialog();
LeereListe(o);
InitialisiereDasViewModell();
}
} }