Esempio n. 1
0
        void AddTableTab(Table t, bool refresh = false, TabItem tab = null)
        {
            //Create new tab
            TabItem table = new TabItem();

            table.Header = t.tableName;

            //Create new grid for a tab
            Grid grid = new Grid();

            if (refresh)
            {
                table = tab;
            }

            DataGrid dataGrid = new DataGrid();

            dataGrid.IsReadOnly          = true;
            dataGrid.AutoGenerateColumns = false;

            foreach (var column in t.listOfColumns)
            {
                DataGridTextColumn textColumn = new DataGridTextColumn();
                textColumn.Header  = column;
                textColumn.Width   = 100;
                textColumn.Binding = new Binding("Custom[" + column + "]");
                dataGrid.Columns.Add(textColumn);
            }

            CustomTable[] tableArray = new CustomTable[t.listOfRows.Count];
            int           i          = 0;

            foreach (var raw in t.listOfRows)
            {
                Dictionary <string, object> dict = new Dictionary <string, object>();
                tableArray[i] = new CustomTable();
                int j = 0;
                foreach (var rawVal in raw)
                {
                    dict.Add(t.listOfColumns[j++], rawVal);
                }
                tableArray[i++].Custom = dict;
            }
            dataGrid.ItemsSource = tableArray;


            grid.Children.Add(dataGrid);

            Button deleteBbutton = new Button();

            deleteBbutton.Content             = "Delete";
            deleteBbutton.VerticalAlignment   = VerticalAlignment.Bottom;
            deleteBbutton.HorizontalAlignment = HorizontalAlignment.Right;
            deleteBbutton.Margin = new Thickness(100, 150, 10, 10);
            deleteBbutton.Click += (object sender, RoutedEventArgs e) => DeleteButton_Click(sender, e, t);
            grid.Children.Add(deleteBbutton);

            Button addButton = new Button();

            addButton.Content             = "Add";
            addButton.VerticalAlignment   = VerticalAlignment.Bottom;
            addButton.HorizontalAlignment = HorizontalAlignment.Right;
            addButton.Margin = new Thickness(100, 100, 100, 10);
            addButton.Click += (object sender, RoutedEventArgs e) => AddButton_Click(sender, e, t);
            grid.Children.Add(addButton);

            Button editButton = new Button();

            editButton.Content             = "Edit";
            editButton.VerticalAlignment   = VerticalAlignment.Bottom;
            editButton.HorizontalAlignment = HorizontalAlignment.Right;
            editButton.Margin = new Thickness(100, 100, 50, 10);
            editButton.Click += (object sender, RoutedEventArgs e) => EditButton_Click(sender, e, t, dataGrid);
            grid.Children.Add(editButton);

            table.Content = grid;

            if (!refresh)
            {
                TabsControl.Items.Add(table);
            }
        }
Esempio n. 2
0
        private void EditButton_Click(object sender, RoutedEventArgs e, Table table, DataGrid grid)
        {
            var window = new Window();

            window.Width  = 350;
            window.Height = 350;
            var stackPanel = new StackPanel {
                Orientation = Orientation.Vertical
            };

            NameScope.SetNameScope(stackPanel, new NameScope());

            if (grid.SelectedItems.Count < 1)
            {
                window.Close();
            }

            CustomTable row = (CustomTable)grid.SelectedItems[0];


            foreach (var column in table.listOfColumns)
            {
                stackPanel.Children.Add(new Label {
                    Content = column
                });
                TextBox textbox = new TextBox();
                textbox.Text = ((string)row.Custom[column]);
                textbox.Name = column;

                if ((column.CompareTo("id") == 0) || table.tableName.CompareTo("Article") == 0 && column.CompareTo("name") == 0)
                {
                    textbox.Visibility = Visibility.Hidden;
                }

                stackPanel.RegisterName(textbox.Name, textbox);
                stackPanel.Children.Add(textbox);
            }
            Button submitButton = new Button {
                Content = "Submit"
            };

            submitButton.Click += (object sender2, RoutedEventArgs e2) => {
                List <string> arguments = new List <string>();
                foreach (var column in table.listOfColumns)
                {
                    TextBox textBox = (TextBox)stackPanel.FindName(column);

                    if (table.tableName.CompareTo("Article") == 0)
                    {
                        if (column.CompareTo("name") != 0)
                        {
                            TextBox name = (TextBox)stackPanel.FindName("name");
                            arguments.Add(name.Text + "=" + column + "=" + textBox.Text.Replace(' ', '+'));
                        }
                    }
                    else if (!(column.CompareTo("id") == 0))
                    {
                        TextBox id = (TextBox)stackPanel.FindName("id");
                        arguments.Add(id.Text + "=" + column + "=" + textBox.Text.Replace(' ', '+'));
                    }
                }
                dataManipulator.SetTable(token, table.tableName, arguments.ToArray());
                refreshTab(table.tableName);
                window.Close();
            };
            stackPanel.Children.Add(submitButton);

            window.Content = stackPanel;
            window.ShowDialog();
        }