private void externeKostenEditButton_Click(object sender, EventArgs e)
        {
            int externeKosteneId;
            DataGridViewSelectedRowCollection selectedRow;

            if (externeKostenDataGrid.SelectedRows.Count == 1 && externeKostenDataGrid.SelectedRows[0].Cells[0].Value != null)
            {
                selectedRow      = externeKostenDataGrid.SelectedRows;
                externeKosteneId = Int32.Parse(selectedRow[0].Cells[0].Value.ToString());

                //Connect auf Tabelle inkl. dem Mapping
                Table <ExterneKosten> externeKostenTableDefinition = dbContext.GetTable <ExterneKosten>();
                Table <Kostenart>     kostenartTableDefinition     = dbContext.GetTable <Kostenart>();

                //Abfrage
                var zu_ressource = from externeKosten in externeKostenTableDefinition
                                   where externeKosten.externeKostenId == externeKosteneId
                                   join kostenart in kostenartTableDefinition
                                   on externeKosten.kostenartId equals kostenart.kostenartId
                                   select new
                {
                    externeKosten,
                    kostenart
                };


                if (zu_ressource.Any())
                {
                    ExterneKosten externeKosten = zu_ressource.First().externeKosten;
                    Kostenart     kostenart     = zu_ressource.First().kostenart;
                    //open edit Dialog -> ein element editieren

                    addExterneKostenForm = new AddExterneKostenForm(dbContext, true, externeKosteneId);

                    addExterneKostenForm.AbweichungsgrundTextBox.Text    = externeKosten.abweichungsbegruendung.ToString();
                    addExterneKostenForm.KostenGeplantTextBox.Text       = externeKosten.geplannteKosten.ToString();
                    addExterneKostenForm.KostenEffektivTextBox.Text      = externeKosten.effektiveKosten.ToString();
                    addExterneKostenForm.KostenartComboBox.SelectedIndex = addExterneKostenForm.KostenartComboBox.FindString(kostenart.bezeichnung);

                    addExterneKostenForm.ShowDialog();

                    if (addExterneKostenForm.DialogResult == DialogResult.OK)
                    {
                        externeKosten.abweichungsbegruendung = addExterneKostenForm.AbweichungsgrundTextBox.Text;
                        externeKosten.geplannteKosten        = Decimal.Parse(addExterneKostenForm.KostenGeplantTextBox.Text);
                        externeKosten.effektiveKosten        = Decimal.Parse(addExterneKostenForm.KostenEffektivTextBox.Text);
                        externeKosten.kostenartId            = ((KostenartComboboxItem)addExterneKostenForm.KostenartComboBox.SelectedItem).Value.kostenartId;

                        //Aenderung auf DB auslösen
                        dbContext.SubmitChanges();
                    }
                }

                // datagrid neu befüllen
                loadExterneKostenDataGrid();
            }
        }
 public KostenartComboboxItem(Kostenart kostenart)
 {
     this.Value = kostenart;
     this.Text  = kostenart.bezeichnung;
 }