private void eingabeTabellenfeld_ChkLoeschen_Click(object sender, RoutedEventArgs e) { CheckBox _sender = (CheckBox)sender; EingabeTabellenfelder eingabeTabellenfeld = Helpers.FindParent <EingabeTabellenfelder>(_sender); FelderHinzufuegen.Remove(eingabeTabellenfeld); zeichneGrid(); }
private void btnHinzu_Click(object sender, RoutedEventArgs e) { EingabeTabellenfelder eingabeTabellenfeld = new EingabeTabellenfelder("", Tabelle); eingabeTabellenfeld.chkLoeschen.ToolTip = "Hier klicken, um das Feld wieder zu entfernen!"; eingabeTabellenfeld.chkLoeschen.Click += eingabeTabellenfeld_ChkLoeschen_Click; FelderHinzufuegen.Add(eingabeTabellenfeld); zeichneGrid(); }
private void Save_CanExecute(object sender, CanExecuteRoutedEventArgs e) { List <string> Checkliste = FelderStart; e.CanExecute = true; //sollte noch garnichts passiert sein, ist es BLödsinn zu speichern if (FelderLoeschen.Count() == 0 && grdMain.Children.Count == _anzahlFelder) { e.CanExecute = false; } //Es dürfen nur Buchstaben und Nummern als Bezeichner verwendet werden string AllowedChars = @"^[a-zA-Z0-9]+$"; foreach (var item in grdMain.Children) { //Ist die ANzahl der zu löschenden Felder gleich der Anzahl der existierenden Felder, gibt es keine Felder mehr --> false if (FelderLoeschen.Count() == (_anzahlFelder - _anzahlFelderDisabled)) { e.CanExecute = false; } if (item.GetType() == typeof(EingabeTabellenfelder)) { //Es gibt EIngabefelder, also per se erst mal wieder true e.CanExecute = true; //Erst mal schauen, ob überhaupt ausgefüllt EingabeTabellenfelder eingabeTabellenfeld = (EingabeTabellenfelder)item; if (eingabeTabellenfeld.txtBezeichnung.Text.Equals("") || eingabeTabellenfeld.comBoxFeldtyp.SelectedItem == null) { e.CanExecute = false; } //ob korrekt ausgefüllt if (!Regex.IsMatch(eingabeTabellenfeld.txtBezeichnung.Text, AllowedChars)) { e.CanExecute = false; } //Dann schauen, ob die Feldnamen schon existieren if (Checkliste.Contains(eingabeTabellenfeld.txtBezeichnung.Text)) { e.CanExecute = false; } //else { // //Checkliste.Add(eingabeTabellenfeld.txtBezeichnung.Text); //TODO --> Es ist noch möglich, zwei mal denselben Namen als Tabellenfeld anzugeben //} } } }
private void btnHinzu_Click(object sender, RoutedEventArgs e) { EingabeTabellenfelder ds = new EingabeTabellenfelder("x"); ds.Margin = new Thickness(5, 5, 0, 0); ds.txtBezeichnung.TextChanged += TxtBezeichnung_TextChanged; //ds.comBoxFeldtyp.SelectionChanged += ComBoxFeldtyp_SelectionChanged; alleTabellenfelder.Add(ds); alleTabellenFeldNamen.Add("neu"); zeichneGrid(); dgDaten.Columns.Add(new DataGridTextColumn { Header = "neu", Binding = new System.Windows.Data.Binding("[" + grdTabFelder.Children.Count + "]"), IsReadOnly = false }); }