예제 #1
0
        private void eingabeTabellenfeld_ChkLoeschen_Click(object sender, RoutedEventArgs e)
        {
            CheckBox _sender = (CheckBox)sender;
            EingabeTabellenfelder eingabeTabellenfeld = Helpers.FindParent <EingabeTabellenfelder>(_sender);

            FelderHinzufuegen.Remove(eingabeTabellenfeld);
            zeichneGrid();
        }
예제 #2
0
        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();
        }
예제 #3
0
        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
                    //}
                }
            }
        }
예제 #4
0
        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
            });
        }