private void dataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            DataGrid tmpGrid = (DataGrid)sender;

            if (tmpGrid.Items.Count == 0 || e.ChangedButton != MouseButton.Left)
            {
                return;
            }

            GridProduktKatalog auswahl = (GridProduktKatalog)this.dataGrid.SelectedItem;
            Produkt            produkt;

            if (auswahl != null)
            {
                //MessageBox.Show(this, auswahl.ToString());
                produkt = this.meinKatalog.getProdukt(auswahl.Artikelnummer, false);

                //d = new Details(produkt.GetType(), Details.Bearbeitung.istBearbeitung);
                //d.Owner = this;

                this.detailAnsicht.produkt    = produkt;
                this.detailAnsicht.produktTyp = produkt.GetType();

                this.detailAnsicht.Owner = this;
                this.detailAnsicht.anpassungDetailAnsicht();
                this.detailAnsicht.detailsFuellen(produkt);

                this.detailAnsicht.ShowDialog();
            }
            else
            {
                MessageBox.Show(this, "Nichts ausgewählt zum Anzeigen.");
            }
        }
        // Füllt das DataGrid mit Produkten
        private void fuelleDataGrid()
        {
            List <GridProduktKatalog> anzeigendeProdukte = new List <GridProduktKatalog>();
            double breite;
            int    anzahlSpalten = 4;

            foreach (Produkt p in this.letzteListe)
            {
                GridProduktKatalog tmp = new GridProduktKatalog(p.GetType());
                tmp.Artikelnummer = p.artikelnummer;
                tmp.Titel         = p.titel;
                tmp.Preis         = p.preis;

                anzeigendeProdukte.Add(tmp);
            }

            // Zuweisen der Daten zum DataGrid
            this.dataGrid.ItemsSource = anzeigendeProdukte;

            this.dataGrid.Columns[4].Visibility  = Visibility.Hidden;
            this.dataGrid.Columns[1].CanUserSort = false;

            breite = this.dataGrid.ActualWidth - 15;

            this.dataGrid.Columns[0].Width = breite / anzahlSpalten;
            this.dataGrid.Columns[1].Width = breite / anzahlSpalten;
            this.dataGrid.Columns[2].Width = breite / anzahlSpalten;
            this.dataGrid.Columns[3].Width = breite / anzahlSpalten;
        }
        // Wird ausgelöst wenn ein Produkt gelöscht werden soll
        private void btnLoeschen_Click(object sender, RoutedEventArgs e)
        {
            GridProduktKatalog auswahl = (GridProduktKatalog)this.dataGrid.SelectedItem;
            Produkt            produkt;

            if (auswahl != null)
            {
                //MessageBox.Show(this, auswahl.ToString());
                produkt = this.meinKatalog.getProdukt(auswahl.Artikelnummer, false);

                if (!(MessageBox.Show(this, "Wollen Sie das ausgewählte Produkt wirklich löschen?", produkt.GetType().Name + ": Produkt löschen", MessageBoxButton.OKCancel) == MessageBoxResult.OK))
                {
                    return;
                }

                if (produkt.GetType() == typeof(Tapetenrolle))
                {
                    this.meinKatalog.deleteTapete((Tapetenrolle)produkt);
                }
                else if (produkt.GetType() == typeof(Fliesenpaket))
                {
                    this.meinKatalog.deleteFliese((Fliesenpaket)produkt);
                }
                else
                {
                    this.meinKatalog.deleteZusatzprodukt((Zusatzprodukt)produkt);
                }

                this.meinKatalog.sichereProduktdaten();

                this.aktualisiereDataGrid();
            }
            else
            {
                MessageBox.Show(this, "Nichts ausgewählt zum Löschen.");
            }
        }