Erweiterte Fahrzeugliste und moderne Oberfläche
This commit is contained in:
parent
3ef417ee70
commit
943c9df593
@ -31,3 +31,7 @@ Dieses Projekt dient als einfache Verwaltung von Fahrzeugen für ein Autohaus. D
|
|||||||
## Autoren
|
## Autoren
|
||||||
Dieses Projekt wurde im Rahmen einer Übung von **Younes**, **Saad** und **Ayman** erstellt.
|
Dieses Projekt wurde im Rahmen einer Übung von **Younes**, **Saad** und **Ayman** erstellt.
|
||||||
|
|
||||||
|
- **Younes** kümmerte sich um Datenbank und grundlegende Geschäftslogik.
|
||||||
|
- **Saad** gestaltete die Oberfläche und implementierte den PDF-Export.
|
||||||
|
- **Ayman** verfasste die Dokumentation und begleitete die Tests.
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ namespace FahrzeugVerwaltung
|
|||||||
|
|
||||||
public partial class App : Application
|
public partial class App : Application
|
||||||
{
|
{
|
||||||
// Startet das Programm und registriert Fehlerbehandlung
|
// Startet Programm und meldet Fehler
|
||||||
protected override void OnStartup(StartupEventArgs e)
|
protected override void OnStartup(StartupEventArgs e)
|
||||||
{
|
{
|
||||||
base.OnStartup(e);
|
base.OnStartup(e);
|
||||||
@ -14,7 +14,7 @@ namespace FahrzeugVerwaltung
|
|||||||
DispatcherUnhandledException += App_UnbehandelteAusnahme;
|
DispatcherUnhandledException += App_UnbehandelteAusnahme;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zeigt Fehler der Oberfläche an
|
// Zeigt Fehler in Oberfläche
|
||||||
private void App_UnbehandelteAusnahme(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
|
private void App_UnbehandelteAusnahme(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
|
||||||
{
|
{
|
||||||
MessageBox.Show($"Ein unerwarteter Fehler ist aufgetreten:\n{e.Exception.Message}",
|
MessageBox.Show($"Ein unerwarteter Fehler ist aufgetreten:\n{e.Exception.Message}",
|
||||||
@ -22,7 +22,7 @@ namespace FahrzeugVerwaltung
|
|||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Meldet schwere Ausnahmen des Programms
|
// Meldet kritische Ausnahmen
|
||||||
private void Domain_UnbehandelteAusnahme(object sender, UnhandledExceptionEventArgs e)
|
private void Domain_UnbehandelteAusnahme(object sender, UnhandledExceptionEventArgs e)
|
||||||
{
|
{
|
||||||
MessageBox.Show($"Ein kritischer Fehler ist aufgetreten:\n{((Exception)e.ExceptionObject).Message}",
|
MessageBox.Show($"Ein kritischer Fehler ist aufgetreten:\n{((Exception)e.ExceptionObject).Message}",
|
||||||
|
@ -17,7 +17,7 @@ namespace FahrzeugVerwaltung
|
|||||||
ErstelleDatenbank();
|
ErstelleDatenbank();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Legt Datenbank und Tabelle an
|
// Erstellt Datenbank und Tabelle
|
||||||
private void ErstelleDatenbank()
|
private void ErstelleDatenbank()
|
||||||
{
|
{
|
||||||
using var connection = new SQLiteConnection(_connectionString);
|
using var connection = new SQLiteConnection(_connectionString);
|
||||||
@ -38,7 +38,7 @@ namespace FahrzeugVerwaltung
|
|||||||
command.ExecuteNonQuery();
|
command.ExecuteNonQuery();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Speichert ein Fahrzeug und liefert die neue Id
|
// Speichert Fahrzeug und gibt neue Id zurück
|
||||||
public int SpeichereFahrzeug(Fahrzeug fahrzeug)
|
public int SpeichereFahrzeug(Fahrzeug fahrzeug)
|
||||||
{
|
{
|
||||||
using var connection = new SQLiteConnection(_connectionString);
|
using var connection = new SQLiteConnection(_connectionString);
|
||||||
@ -58,7 +58,7 @@ namespace FahrzeugVerwaltung
|
|||||||
return Convert.ToInt32(command.ExecuteScalar());
|
return Convert.ToInt32(command.ExecuteScalar());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lädt alle gespeicherten Fahrzeuge
|
// Lädt alle Fahrzeuge
|
||||||
public List<Fahrzeug> LadeAlleFahrzeuge()
|
public List<Fahrzeug> LadeAlleFahrzeuge()
|
||||||
{
|
{
|
||||||
var fahrzeuge = new List<Fahrzeug>();
|
var fahrzeuge = new List<Fahrzeug>();
|
||||||
@ -84,7 +84,7 @@ namespace FahrzeugVerwaltung
|
|||||||
return fahrzeuge;
|
return fahrzeuge;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sucht Fahrzeuge anhand eines Textes
|
// Sucht Fahrzeuge mit Text
|
||||||
public List<Fahrzeug> SucheFahrzeuge(string suchbegriff)
|
public List<Fahrzeug> SucheFahrzeuge(string suchbegriff)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(suchbegriff))
|
if (string.IsNullOrWhiteSpace(suchbegriff))
|
||||||
@ -120,7 +120,7 @@ namespace FahrzeugVerwaltung
|
|||||||
return fahrzeuge;
|
return fahrzeuge;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Aktualisiert ein vorhandenes Fahrzeug
|
// Aktualisiert Fahrzeug
|
||||||
public bool AktualisiereFahrzeug(Fahrzeug fahrzeug)
|
public bool AktualisiereFahrzeug(Fahrzeug fahrzeug)
|
||||||
{
|
{
|
||||||
using var connection = new SQLiteConnection(_connectionString);
|
using var connection = new SQLiteConnection(_connectionString);
|
||||||
@ -147,7 +147,7 @@ namespace FahrzeugVerwaltung
|
|||||||
return command.ExecuteNonQuery() > 0;
|
return command.ExecuteNonQuery() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Entfernt ein Fahrzeug aus der Datenbank
|
// Löscht Fahrzeug
|
||||||
public bool LoescheFahrzeug(int id)
|
public bool LoescheFahrzeug(int id)
|
||||||
{
|
{
|
||||||
using var connection = new SQLiteConnection(_connectionString);
|
using var connection = new SQLiteConnection(_connectionString);
|
||||||
@ -158,7 +158,7 @@ namespace FahrzeugVerwaltung
|
|||||||
return command.ExecuteNonQuery() > 0;
|
return command.ExecuteNonQuery() > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gibt die Anzahl der gespeicherten Fahrzeuge zurück
|
// Zählt Fahrzeuge
|
||||||
public int HoleAnzahlFahrzeuge()
|
public int HoleAnzahlFahrzeuge()
|
||||||
{
|
{
|
||||||
using var connection = new SQLiteConnection(_connectionString);
|
using var connection = new SQLiteConnection(_connectionString);
|
||||||
|
@ -27,10 +27,10 @@ namespace FahrzeugVerwaltung
|
|||||||
public string KaufpreisFormatiert => $"{Kaufpreis:C}";
|
public string KaufpreisFormatiert => $"{Kaufpreis:C}";
|
||||||
public string AktuellerWertFormatiert => $"{AktuellerWert:C}";
|
public string AktuellerWertFormatiert => $"{AktuellerWert:C}";
|
||||||
|
|
||||||
// Gibt den geschätzten aktuellen Wert zurück
|
// Geschätzter aktueller Wert
|
||||||
public decimal AktuellerWert => BerechneAktuellenWert();
|
public decimal AktuellerWert => BerechneAktuellenWert();
|
||||||
|
|
||||||
// Berechnet den Wert anhand von Alter und Laufleistung
|
// Berechnet aktuellen Wert
|
||||||
public decimal BerechneAktuellenWert()
|
public decimal BerechneAktuellenWert()
|
||||||
{
|
{
|
||||||
if (Kaufpreis <= 0 || Baujahr <= 0) return 0;
|
if (Kaufpreis <= 0 || Baujahr <= 0) return 0;
|
||||||
@ -51,19 +51,19 @@ namespace FahrzeugVerwaltung
|
|||||||
return Math.Round(wert, 2);
|
return Math.Round(wert, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Liefert eine kurze Fahrzeugbeschreibung
|
// Beschreibung für Anzeige
|
||||||
public string HoleBeschreibung()
|
public string HoleBeschreibung()
|
||||||
{
|
{
|
||||||
return $"{Marke} {Modell} ({Baujahr}) - {Leistung} PS - {KilometerstandFormatiert} - {Farbe}";
|
return $"{Marke} {Modell} ({Baujahr}) - {Leistung} PS - {KilometerstandFormatiert} - {Farbe}";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Berechnet das Alter des Fahrzeugs
|
// Alter des Fahrzeugs
|
||||||
public int HoleAlter()
|
public int HoleAlter()
|
||||||
{
|
{
|
||||||
return DateTime.Now.Year - Baujahr;
|
return DateTime.Now.Year - Baujahr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prüft, ob das Fahrzeug als Oldtimer gilt
|
// Prüft auf Oldtimer
|
||||||
public bool IstOldtimer()
|
public bool IstOldtimer()
|
||||||
{
|
{
|
||||||
return HoleAlter() >= 30;
|
return HoleAlter() >= 30;
|
||||||
@ -71,7 +71,7 @@ namespace FahrzeugVerwaltung
|
|||||||
|
|
||||||
public event PropertyChangedEventHandler PropertyChanged;
|
public event PropertyChangedEventHandler PropertyChanged;
|
||||||
|
|
||||||
// Informiert die Oberfläche über eine geänderte Eigenschaft
|
// Meldet geänderte Eigenschaft
|
||||||
private void MeldeEigenschaft(string eigenschaft)
|
private void MeldeEigenschaft(string eigenschaft)
|
||||||
{
|
{
|
||||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(eigenschaft));
|
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(eigenschaft));
|
||||||
|
@ -39,13 +39,25 @@
|
|||||||
<Setter Property="Height" Value="25"/>
|
<Setter Property="Height" Value="25"/>
|
||||||
</Style>
|
</Style>
|
||||||
|
|
||||||
|
<Style TargetType="Label">
|
||||||
|
<Setter Property="Foreground" Value="#FF333333"/>
|
||||||
|
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||||
|
<Setter Property="Margin" Value="0,2,0,2"/>
|
||||||
|
</Style>
|
||||||
|
|
||||||
<Style TargetType="GroupBox">
|
<Style TargetType="GroupBox">
|
||||||
<Setter Property="FontWeight" Value="Bold"/>
|
<Setter Property="FontWeight" Value="Bold"/>
|
||||||
<Setter Property="Foreground" Value="#FF333333"/>
|
<Setter Property="Foreground" Value="#FF333333"/>
|
||||||
</Style>
|
</Style>
|
||||||
</Window.Resources>
|
</Window.Resources>
|
||||||
|
|
||||||
<Grid Margin="10" Background="#F5F5F5">
|
<Grid Margin="10">
|
||||||
|
<Grid.Background>
|
||||||
|
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
|
||||||
|
<GradientStop Color="#FFFFFF" Offset="0"/>
|
||||||
|
<GradientStop Color="#E3F2FD" Offset="1"/>
|
||||||
|
</LinearGradientBrush>
|
||||||
|
</Grid.Background>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="400"/>
|
<ColumnDefinition Width="400"/>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
@ -55,7 +67,7 @@
|
|||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition Height="*"/>
|
<RowDefinition Height="*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<TextBlock Grid.ColumnSpan="2" Grid.Row="0" Text="Fahrzeugverwaltung" FontSize="26" FontWeight="Bold" Foreground="#FF1976D2" HorizontalAlignment="Center" Margin="0,0,0,10"/>
|
<TextBlock Grid.ColumnSpan="2" Grid.Row="0" Text="Fahrzeugverwaltung" FontSize="32" FontWeight="SemiBold" FontFamily="Segoe UI" Foreground="#FF1976D2" HorizontalAlignment="Center" Margin="0,0,0,10"/>
|
||||||
<GroupBox Grid.Column="0" Grid.Row="1" Header="Neues Fahrzeug" Margin="5">
|
<GroupBox Grid.Column="0" Grid.Row="1" Header="Neues Fahrzeug" Margin="5">
|
||||||
<Grid Margin="10">
|
<Grid Margin="10">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
|
@ -22,7 +22,7 @@ namespace FahrzeugVerwaltung
|
|||||||
MarkenVorbereiten();
|
MarkenVorbereiten();
|
||||||
FahrzeugeLaden();
|
FahrzeugeLaden();
|
||||||
}
|
}
|
||||||
// Erstellt Hilfsdienste
|
// Legt Dienste an
|
||||||
private void DiensteAnlegen()
|
private void DiensteAnlegen()
|
||||||
{
|
{
|
||||||
_datenbankDienst = new DatabaseService();
|
_datenbankDienst = new DatabaseService();
|
||||||
@ -30,7 +30,7 @@ namespace FahrzeugVerwaltung
|
|||||||
_fahrzeuge = new List<Fahrzeug>();
|
_fahrzeuge = new List<Fahrzeug>();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Legt Marken und Modelle fest
|
// Bereitet Marken und Modelle vor
|
||||||
private void MarkenVorbereiten()
|
private void MarkenVorbereiten()
|
||||||
{
|
{
|
||||||
_markenModelle = new Dictionary<string, List<string>>
|
_markenModelle = new Dictionary<string, List<string>>
|
||||||
@ -54,13 +54,23 @@ namespace FahrzeugVerwaltung
|
|||||||
{"Fiat", new List<string>{"500","Panda","Tipo","Punto","Doblo","Bravo"}},
|
{"Fiat", new List<string>{"500","Panda","Tipo","Punto","Doblo","Bravo"}},
|
||||||
{"Volvo", new List<string>{"S60","S90","V60","V90","XC60","XC90"}},
|
{"Volvo", new List<string>{"S60","S90","V60","V90","XC60","XC90"}},
|
||||||
{"Subaru", new List<string>{"Impreza","Legacy","Outback","Forester","XV","BRZ"}},
|
{"Subaru", new List<string>{"Impreza","Legacy","Outback","Forester","XV","BRZ"}},
|
||||||
{"Tesla", new List<string>{"Model S","Model 3","Model X","Model Y","Roadster","Cybertruck"}}
|
{"Tesla", new List<string>{"Model S","Model 3","Model X","Model Y","Roadster","Cybertruck"}},
|
||||||
|
{"Chevrolet", new List<string>{"Spark","Cruze","Malibu","Equinox","Traverse","Tahoe"}},
|
||||||
|
{"Jaguar", new List<string>{"XE","XF","XJ","F-Pace","E-Pace","I-Pace"}},
|
||||||
|
{"Jeep", new List<string>{"Renegade","Compass","Cherokee","Grand Cherokee","Wrangler","Gladiator"}},
|
||||||
|
{"Land Rover", new List<string>{"Discovery Sport","Discovery","Range Rover Evoque","Range Rover Sport","Defender","Velar"}},
|
||||||
|
{"Lexus", new List<string>{"IS","ES","GS","RX","NX","LC"}},
|
||||||
|
{"Mitsubishi", new List<string>{"Space Star","Lancer","Outlander","ASX","Eclipse Cross","Pajero"}},
|
||||||
|
{"Porsche", new List<string>{"911","Cayenne","Panamera","Macan","Taycan","Boxster"}},
|
||||||
|
{"Citroën", new List<string>{"C1","C3","C4","C5","C3 Aircross","Berlingo"}},
|
||||||
|
{"Alfa Romeo", new List<string>{"Giulia","Giulietta","Stelvio","MiTo","4C","Tonale"}},
|
||||||
|
{"Mini", new List<string>{"One","Cooper","Clubman","Countryman","Cabrio","Paceman"}}
|
||||||
};
|
};
|
||||||
|
|
||||||
cmbMarke.ItemsSource = _markenModelle.Keys;
|
cmbMarke.ItemsSource = _markenModelle.Keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lädt alle Fahrzeuge aus der Datenbank
|
// Lädt Fahrzeuge aus der Datenbank
|
||||||
private void FahrzeugeLaden()
|
private void FahrzeugeLaden()
|
||||||
{
|
{
|
||||||
_fahrzeuge = _datenbankDienst.LadeAlleFahrzeuge();
|
_fahrzeuge = _datenbankDienst.LadeAlleFahrzeuge();
|
||||||
@ -68,7 +78,7 @@ namespace FahrzeugVerwaltung
|
|||||||
StatusAktualisieren();
|
StatusAktualisieren();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zeigt die aktuelle Anzahl der Fahrzeuge an
|
// Zeigt Anzahl der Fahrzeuge
|
||||||
private void StatusAktualisieren()
|
private void StatusAktualisieren()
|
||||||
{
|
{
|
||||||
if (_fahrzeuge.Count == 0)
|
if (_fahrzeuge.Count == 0)
|
||||||
@ -77,7 +87,7 @@ namespace FahrzeugVerwaltung
|
|||||||
txtDetails.Text = $"{_fahrzeuge.Count} Fahrzeug(e) gefunden";
|
txtDetails.Text = $"{_fahrzeuge.Count} Fahrzeug(e) gefunden";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fügt ein neues Fahrzeug hinzu
|
// Fügt Fahrzeug hinzu
|
||||||
private void BtnHinzufuegen_Click(object sender, RoutedEventArgs e)
|
private void BtnHinzufuegen_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (!EingabenPruefen())
|
if (!EingabenPruefen())
|
||||||
@ -100,7 +110,7 @@ namespace FahrzeugVerwaltung
|
|||||||
FahrzeugeLaden();
|
FahrzeugeLaden();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Aktualisiert das ausgewählte Fahrzeug
|
// Speichert Änderungen
|
||||||
private void BtnBearbeiten_Click(object sender, RoutedEventArgs e)
|
private void BtnBearbeiten_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (_ausgewaehltesFahrzeug == null || !EingabenPruefen())
|
if (_ausgewaehltesFahrzeug == null || !EingabenPruefen())
|
||||||
@ -119,7 +129,7 @@ namespace FahrzeugVerwaltung
|
|||||||
FahrzeugeLaden();
|
FahrzeugeLaden();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Entfernt das gewählte Fahrzeug
|
// Löscht ausgewähltes Fahrzeug
|
||||||
private void BtnLoeschen_Click(object sender, RoutedEventArgs e)
|
private void BtnLoeschen_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (_ausgewaehltesFahrzeug == null)
|
if (_ausgewaehltesFahrzeug == null)
|
||||||
@ -136,7 +146,7 @@ namespace FahrzeugVerwaltung
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prüft die Eingaben
|
// Prüft Eingaben
|
||||||
private bool EingabenPruefen()
|
private bool EingabenPruefen()
|
||||||
{
|
{
|
||||||
var fehler = new List<string>();
|
var fehler = new List<string>();
|
||||||
@ -165,7 +175,7 @@ namespace FahrzeugVerwaltung
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setzt alle Eingaben zurück
|
// Leert Eingaben
|
||||||
private void EingabenLeeren()
|
private void EingabenLeeren()
|
||||||
{
|
{
|
||||||
cmbMarke.SelectedIndex = -1;
|
cmbMarke.SelectedIndex = -1;
|
||||||
@ -178,7 +188,7 @@ namespace FahrzeugVerwaltung
|
|||||||
cmbMarke.Focus();
|
cmbMarke.Focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sucht Fahrzeuge per Text
|
// Sucht Fahrzeuge
|
||||||
private void BtnSuchen_Click(object sender, RoutedEventArgs e)
|
private void BtnSuchen_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
var suchbegriff = txtSuche.Text.Trim();
|
var suchbegriff = txtSuche.Text.Trim();
|
||||||
@ -190,14 +200,14 @@ namespace FahrzeugVerwaltung
|
|||||||
StatusAktualisieren();
|
StatusAktualisieren();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zeigt wieder alle Fahrzeuge
|
// Zeigt alle Fahrzeuge
|
||||||
private void BtnAlle_Click(object sender, RoutedEventArgs e)
|
private void BtnAlle_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
txtSuche.Clear();
|
txtSuche.Clear();
|
||||||
FahrzeugeLaden();
|
FahrzeugeLaden();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reagiert auf Auswahl in der Tabelle
|
// Reagiert auf Tabellen-Auswahl
|
||||||
private void Liste_AuswahlGeaendert(object sender, SelectionChangedEventArgs e)
|
private void Liste_AuswahlGeaendert(object sender, SelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
_ausgewaehltesFahrzeug = dgFahrzeuge.SelectedItem as Fahrzeug;
|
_ausgewaehltesFahrzeug = dgFahrzeuge.SelectedItem as Fahrzeug;
|
||||||
@ -222,7 +232,7 @@ namespace FahrzeugVerwaltung
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Speichert das Fahrzeug als PDF
|
// Exportiert Fahrzeug als PDF
|
||||||
private void BtnPdf_Click(object sender, RoutedEventArgs e)
|
private void BtnPdf_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
if (_ausgewaehltesFahrzeug == null)
|
if (_ausgewaehltesFahrzeug == null)
|
||||||
@ -241,13 +251,13 @@ namespace FahrzeugVerwaltung
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lädt die Liste neu
|
// Aktualisiert Liste
|
||||||
private void BtnAktualisieren_Click(object sender, RoutedEventArgs e)
|
private void BtnAktualisieren_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
FahrzeugeLaden();
|
FahrzeugeLaden();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Unterstützt einfache Tastenkürzel
|
// Tastenkürzel
|
||||||
protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e)
|
protected override void OnKeyDown(System.Windows.Input.KeyEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.Key == System.Windows.Input.Key.S && System.Windows.Input.Keyboard.Modifiers == System.Windows.Input.ModifierKeys.Control)
|
if (e.Key == System.Windows.Input.Key.S && System.Windows.Input.Keyboard.Modifiers == System.Windows.Input.ModifierKeys.Control)
|
||||||
@ -274,7 +284,7 @@ namespace FahrzeugVerwaltung
|
|||||||
base.OnKeyDown(e);
|
base.OnKeyDown(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Aktualisiert die Modelle zur Marke
|
// Passt Modelle zur Marke an
|
||||||
private void CmbMarke_AuswahlGeaendert(object sender, SelectionChangedEventArgs e)
|
private void CmbMarke_AuswahlGeaendert(object sender, SelectionChangedEventArgs e)
|
||||||
{
|
{
|
||||||
if (cmbMarke.SelectedItem == null)
|
if (cmbMarke.SelectedItem == null)
|
||||||
|
@ -7,7 +7,7 @@ namespace FahrzeugVerwaltung
|
|||||||
{
|
{
|
||||||
public class PdfService
|
public class PdfService
|
||||||
{
|
{
|
||||||
// Erstellt ein PDF mit den Daten eines Fahrzeugs
|
// Erstellt PDF für ein Fahrzeug
|
||||||
public bool ErstelleFahrzeugPdf(Fahrzeug fahrzeug, string dateiPfad)
|
public bool ErstelleFahrzeugPdf(Fahrzeug fahrzeug, string dateiPfad)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@ -31,7 +31,7 @@ namespace FahrzeugVerwaltung
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Erstellt ein PDF mit allen Fahrzeugen
|
// Erstellt PDF mit allen Fahrzeugen
|
||||||
public bool ErstelleFahrzeuglistePdf(List<Fahrzeug> fahrzeuge, string dateiPfad)
|
public bool ErstelleFahrzeuglistePdf(List<Fahrzeug> fahrzeuge, string dateiPfad)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
Loading…
x
Reference in New Issue
Block a user