繁体   English   中英

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

[英]How to add an array as row to DataGrid?

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

输入窗口画面

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

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

空行的屏幕

                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的字符串正确返回

如何添加这些值以适应不同的列数?

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

我假设您的意思是您想从数组中为数组中的每个项目的每一列添加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,然后通过数组枚举并尽可能多的列以在每一列中放置一项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM