private void LoadToDos() { this.todos.Children.Clear(); using (ToDos toDos = this.core.GetToDos(this.cosplan.Nummer)) { int kategorie = 0; int columnCount = 9; //hier "Tabellenkoepfe" fuer Kategorien einfuegen while (!toDos.EoF) { if (kategorie != toDos.Kategorie_Nr) { kategorie = toDos.Kategorie_Nr; Grid header = new Grid { Background = Brushes.Transparent, Height = 20 }; for (int i = 0; i <= columnCount; i++) { header.ColumnDefinitions.Add(new ColumnDefinition()); } this.CreateTableHeader(header, kategorie); this.todos.Children.Add(header); } GridExtended grid = new GridExtended { Background = Brushes.Transparent, Height = 50 }; grid.MouseEnter += Grid_MouseEnter; grid.MouseLeave += Grid_MouseLeave; grid.MouseUp += Grid_MouseUp; grid.EditCompleted += Grid_EditCompleted; for (int i = 0; i <= columnCount; i++) { grid.ColumnDefinitions.Add(new ColumnDefinition()); } this.ActualizeSingleToDoRow(grid, toDos); this.todos.Children.Add(grid); toDos.Skip(); } } }
private void Grid_EditCompleted(object sender, EventArgs e) { GridExtended grid = ((GridExtended)sender); if (grid.Edit) { string bezeichnung = grid.FindVisualChildren <TextBox>().ElementAt(0).Text; int erledigt = 0; decimal kosten = 0; Time zeit = null; ToDos4Grid toDos4Grid = (ToDos4Grid)grid.DataObject; if (this.core.GetKategorie(toDos4Grid.Kategorie_Nr) == "Kaufen") { kosten = grid.FindVisualChildren <TextBox>().ElementAt(1).Text.Replace(" €", "").ToDecimal(); } else if (this.core.GetKategorie(toDos4Grid.Kategorie_Nr) == "Machen") { zeit = new Time(grid.FindVisualChildren <TextBox>().ElementAt(1).Text); } this.core.SaveToDo(bezeichnung, toDos4Grid.Cosplan_Nr, erledigt, kosten, zeit, toDos4Grid.Nummer); } }
private void ActualizeSingleToDoRow(GridExtended grid, ToDos toDos) { grid.Children.Clear(); grid.DataObject = new ToDos4Grid(toDos); grid.FocusElementInEditMode = 2; TextBlock labelNummer = new TextBlock { Text = toDos.Nummer.ToString(), Visibility = Visibility.Collapsed }; grid.Add2Children(labelNummer, true); TextBlock labelBezeichnung = new TextBlock { Text = toDos.Bezeichnung, HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Center, Foreground = Layout.WindowForeground }; Grid.SetColumn(labelBezeichnung, 0); Grid.SetColumnSpan(labelBezeichnung, 5); grid.Add2Children(labelBezeichnung); if (this.core.GetKategorie(toDos.Kategorie_Nr) == "Kaufen") { TextBlock labelKosten = new TextBlock { Text = toDos.Kosten.ToString("C"), HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Center, Foreground = Layout.WindowForeground }; Grid.SetColumn(labelKosten, 5); Grid.SetColumnSpan(labelKosten, 2); grid.Add2Children(labelKosten); BaseCheckBox chkErledigt = new BaseCheckBox { IsChecked = toDos.ProzentErledigt == 100, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center }; chkErledigt.CheckedChanged += ChkErledigt_CheckedChanged; Grid.SetColumn(chkErledigt, 7); Grid.SetColumnSpan(chkErledigt, 2); grid.Add2Children(chkErledigt); } else if (this.core.GetKategorie(toDos.Kategorie_Nr) == "Machen") { //TODO: create custom user control to handle custom type Time properly TextBlock labelZeit = new TextBlock { Text = toDos.Zeit.ToString(), HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Center, Foreground = Layout.WindowForeground }; Grid.SetColumn(labelZeit, 5); Grid.SetColumnSpan(labelZeit, 2); grid.Add2Children(labelZeit); ComboBox comboProzentErledigt = new ComboBox { HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Center, Foreground = Layout.WindowForeground }; comboProzentErledigt.SelectionChanged += ComboProzentErledigt_SelectionChanged; for (int i = 0; i <= 100; i = i + 5) { comboProzentErledigt.Items.Add(new ComboBoxItem { Content = i + "%" }); if (i == toDos.ProzentErledigt) { comboProzentErledigt.SelectedIndex = comboProzentErledigt.Items.Count - 1; } } Grid.SetColumn(comboProzentErledigt, 7); Grid.SetColumnSpan(comboProzentErledigt, 2); grid.Add2Children(comboProzentErledigt); } CustomButton buttonDelToDo = new CustomButton { Text = "", ImageSource = ResourceConstants.DelIcon, HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center }; buttonDelToDo.Click += DelTodo_Click; Grid.SetColumn(buttonDelToDo, 9); grid.Children.Add(buttonDelToDo); }