将数据添加到数据网格

时间:2013-02-17 23:29:52

标签: c# wpf datagrid

我正在开发一个c#项目,我遇到了一个非常奇怪的问题。

我正在读取文件并处理该行并将结果存储在列表数组中的单独变量中。然后我将浏览列表数组并将其填充到datagrid中。

它成功加载文件并在文件中为行创建一个新行,但每行都是空白的,并且没有显示任何列。下面是它的外观截图。

View if datagrid after loading file

当我调试它时,我可以查看变量的内容,所有文本都按预期存在。以下是我正在使用的代码

private void loadNonVerbose(List<LogCatDetails> logCatDetailsList)
        {
            DataSet ds = new DataSet();
            DataTable table = new DataTable();
            DataColumn logLevel = new DataColumn("Log Level", typeof(string));
            DataColumn tag = new DataColumn("Tag", typeof(string));
            DataColumn processID = new DataColumn("Process ID", typeof(int));
            DataColumn message = new DataColumn("Message", typeof(string));

            table.Columns.Add(logLevel);
            table.Columns.Add(tag);
            table.Columns.Add(processID);
            table.Columns.Add(message);

            ds.Tables.Add(table);

            int i = 0;
            foreach (LogCatDetails logCatDetails in logCatDetailsList)
            {
                DataRow row = table.NewRow();
                row[logLevel] = logCatDetails.LogLevel.ToString();
                row[tag] = logCatDetails.Tag;
                row[processID] = logCatDetails.ProcessID;
                row[message] = logCatDetails.Message;
                table.Rows.Add(row);
                if (i == 10)
                {
                    break;
                }
                i++;
            }

            logCatDataGrid.ItemsSource = ds.Tables[0].DefaultView;
        }

感谢您提供的任何帮助

更新 下面是在XML

中定义数据网格的方式
<DataGrid ColumnWidth="*" AutoGenerateColumns="False" Margin="12,51,12,12" Name="logCatDataGrid" />

1 个答案:

答案 0 :(得分:1)

AutoGenerateColumns的{​​{1}}属性设置为DataGrid

True

HighCore是正确的,我建议你遵循他的指导。 <DataGrid ColumnWidth="*" AutoGenerateColumns="True" Margin="12,51,12,12" Name="logCatDataGrid" /> 是不需要的。您只需将DataSet/DataTable修改为以下内容即可简化此操作:

code-behind