无法创建自定义表格

时间:2019-01-02 10:14:26

标签: c# wpf datagrid

我想创建一个表,在其中可以动态添加文本框类型的行和列,也可以通过用户输入来添加行和列。

然后我尝试使用表,但是现在我只能控制行,而不能控制列。

        table1 = new Table();
        TextBox tbx = new TextBox();
        TableRow row = new TableRow();

        trg1.Rows.Add(row);
        Paragraph para = new Paragraph();
        para.Inlines.Add(tbx);
        TableCell cell = new TableCell(para);
        row.Cells.Add(cell);                                                    

我尝试在wpf中在DataGrid上执行此操作,但是我只能控制列号,而不能控制行。

          myGrid.Columns.Clear();

           ObservableCollection<EmptyCell> collection = new ObservableCollection<EmptyCell>();
       for (int i = 0; i < 4; i++) {

            DataGridTemplateColumn dtg = new DataGridTemplateColumn();
            dtg.CanUserResize = true;
            dtg.IsReadOnly = false;
            dtg.CellTemplate = getDataTemplate();

            myGrid.CanUserAddRows = true;
            myGrid.ItemsSource = collection; 
            myGrid.Columns.Add(dtg);
        }
   }
    private static DataTemplate getDataTemplate()
    {
        DataTemplate template = new DataTemplate();
        FrameworkElementFactory factory = new FrameworkElementFactory(typeof(TextBox));
        factory.SetValue(TextBox.TextAlignmentProperty, TextAlignment.Right);
      template.VisualTree = factory;

        return template;
    }

1 个答案:

答案 0 :(得分:0)

您最好的方法是使用二维数组作为数据源,并将其绑定到itemsControl(对于行)中,该ItemsControl在其ItemTemplate内部(对于列而言) )。

通过这种解决方案,您可以通过仅添加到二维数组并重新绑定(如果其不基于INotifyColectionChanged数据数据结构)来添加其他行/列