0

我正在处理 ac# 项目,但遇到了一个非常奇怪的问题。

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

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

加载文件后查看数据网格

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

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" />
4

1 回答 1

1

AutoGenerateColumns属性设置DataGridTrue

<DataGrid ColumnWidth="*" AutoGenerateColumns="True" Margin="12,51,12,12" Name="logCatDataGrid" />

HighCore 是正确的,我建议您遵循他的指导。DataSet/DataTables 是不需要的。code-behind您可以通过简单地将其修改为以下内容来简化这一点:

private void loadNonVerbose(List<LogCatDetails> logCatDetailsList)
{
    logCatDataGrid.ItemsSource = logCatDetailsList;
}
于 2013-02-17T23:59:28.713 回答