WFP DataGrid System.NullReferenceException:'对象引用未设置为对象的实例。在未呈现的内容上

我有一个 DataGrid ,其中填充了59行和列。我尝试将datagrid行插入SQL表,但是在行索引9或10上获取 DataGrid 单元格值时,出现System.NullReferenceException错误。

这是我的代码:

try           {                  
                int creditor = DataGridImport.Columns.IndexOf(DataGridImport.Columns.FirstOrDefault(c => c.Header.ToString() == "creditor"));
                int serialnumber = DataGridImport.Columns.IndexOf(DataGridImport.Columns.FirstOrDefault(c => c.Header.ToString() == "serialnumber"));
                int fullname = DataGridImport.Columns.IndexOf(DataGridImport.Columns.FirstOrDefault(c => c.Header.ToString() == "fullname"));
                int court = DataGridImport.Columns.IndexOf(DataGridImport.Columns.FirstOrDefault(c => c.Header.ToString() == "court"));
                int totaloutstanding = DataGridImport.Columns.IndexOf(DataGridImport.Columns.FirstOrDefault(c => c.Header.ToString() == "totaloutstanding"));
                int category = DataGridImport.Columns.IndexOf(DataGridImport.Columns.FirstOrDefault(c => c.Header.ToString() == "category"));


               for (i = 0; i < DataGridImport.Items.Count; i++)
                {

                        command.Parameters.AddWithValue("@serialnumber",(DataGridImport.Columns[serialnumber].getcellContent(DataGridImport.Items[i]) as TextBlock).Text);// ERROR HERE
                        command.Parameters.AddWithValue("@creditor",(DataGridImport.Columns[creditor].getcellContent(DataGridImport.Items[i]) as TextBlock).Text);
                        command.Parameters.AddWithValue("@fullname",(DataGridImport.Columns[fullname].getcellContent(DataGridImport.Items[i]) as TextBlock).Text);
                        command.Parameters.AddWithValue("@court",(DataGridImport.Columns[court].getcellContent(DataGridImport.Items[i]) as TextBlock).Text);
                        command.Parameters.AddWithValue("@totaloutstanding",(DataGridImport.Columns[totaloutstanding].getcellContent(DataGridImport.Items[i]) as TextBlock).Text);
                        command.Parameters.AddWithValue("@category",(DataGridImport.Columns[category].getcellContent(DataGridImport.Items[i]) as TextBlock).Text);

                    try
                        {
                            command.ExecuteNonQuery();               
                        }

使用NullReferenceException,循环在索引9或10(取决于窗口大小)处停止。

我意识到该代码适用于在屏幕上呈现的n个第一行,但其余行却得到空值。如果我将窗口最大化,则所有行都将显示在屏幕上,并且代码将成功运行。

WFP DataGrid System.NullReferenceException:'对象引用未设置为对象的实例。在未呈现的内容上

以下是 DataGrid 属性:

<DataGrid Margin="10" Grid.Row="1" Name="DataGridImport" IsReadOnly="True" >
    </DataGrid>

我不明白为什么我在窗口中未呈现的填充行上得到NullReferenceException

xh_tong 回答:WFP DataGrid System.NullReferenceException:'对象引用未设置为对象的实例。在未呈现的内容上

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2852455.html

大家都在问