如何将数组作为行添加到DataGrid?

时间:2019-06-09 10:55:49

标签: c# wpfdatagrid

在我的程序中,列的数量不同,因此我为返回字符串数组的窗口创建了通用输入窗口

screen of input window

现在我想将输入的数据添加到DataGrid,但是不知道如何

默认的DataGrid Add方法仅支持添加对象,因此,如果添加数组,则仅添加空格。

screen of empty row

                InputWindow iw = new InputWindow(inputs.ToArray());
                if (iw.ShowDialog() == true)
                {
                    try
                    {
                        var strings = iw.GetInputs();
                        ActiveDataGrid.Items.Add(strings);
                    }
                    catch (ArgumentException ex)
                    {
                        Debug.WriteLine($"{ex.Message} from InputWindow");
                    }
                }

InputWindow中的字符串正确返回

如何添加与我不断变化的列数相对应的这些值?

2 个答案:

答案 0 :(得分:0)

您可以考虑创建仅包含字符串字段的通用类。然后将您的数组提供给类,然后将类对象提供给数据网格。

答案 1 :(得分:0)

我假设您的意思是要为数组中的每个项目向数组的每一列添加1个值。最简单的方法是为每个输入数组创建一个DataRow,以根据数组中有多少项对其进行格式化。

    DataRow row = dataGrid.NewRow();
    foreach (var item in array)
    {
            dataGrid.Columns.Add(item);
            row[item] = item;
    }
    dataGrid.Rows.Add(row);
    dataGrid.Import.Row(row);

如果您的计划是一次处理一个数组项,并且每次导入后都将清除DataGrid,这将起作用,但是如果不是这种情况,则需要创建一些通用的DataColumns,然后进行枚举数组和列的数量足以在每一列中放置一项。