【发布时间】:2016-07-16 11:30:47
【问题描述】:
<DataGrid x:Name="RawDataGrid" Margin="5,-109,5,5" BorderThickness="1 1 1 1" CanUserAddRows="False" CanUserReorderColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Width="190" Header="Temperature" Binding="{Binding Temperature}" />
<DataGridTextColumn Width="190" Header="IntegratedVoltage" Binding="{Binding IntegratedVoltage}" />
</DataGrid.Columns>
</DataGrid>
public static void SetDataGrid()
{
ResultTable = new DataTable();
ResultTable.Columns.Add("Contents") ;
ResultTable.Columns.Add("Low") ;
ResultTable.Columns.Add("Mid") ;
ResultTable.Columns.Add("High") ;
RawDataTable = new DataTable();
ResultTable.Columns.Add("Temperature") ;
ResultTable.Columns.Add("IntegratedVoltage");
}
public static void DisplayResult(DataClass data)
{
try
{
if (ResultTable.Rows.Count != 0)
{
ResultTable.Rows.Clear();
}
DataRow row1 = ResultTable.NewRow();
row1["Contents"] = "Ratio";
row1["Low"] = string.Format("{0:F2}" , data.Ratio_LM.ToString());
row1["Mid"] = string.Format("{0:F2}" , data.Ratio_MH.ToString());
row1["High"] = 1;
ResultTable.Rows.Add(row1);
DataRow row2 = ResultTable.NewRow();
row2["Contents"] = "Temperature";
row2["Low"] = string.Format("{0:F2}" , data.BDTemp_Mdw.ToString());
row2["Mid"] = string.Format("{0:F2}" , data.BDTemp_Mup.ToString());
row2["High"] = "";
ResultTable.Rows.Add(row2);
if (RawDataTable.Rows.Count != 0)
{
RawDataTable.Rows.Clear();
}
for (int i = 0; i < data.IntegratedVoltList.Count; i++)
{
DataRow row = RawDataTable.NewRow();
**row["Temperature"] = string.Format("{0:F2}", data.TempList[i].ToString())** ; // Error
row["IntegratedVoltage"] = string.Format("{0:F2}", data.IntegratedVoltList[i].ToString()) ;
RawDataTable.Rows.Add(row);
}
}
catch (Exception e)
{
}
}
#endregion
}`enter code here`
*错误信息是
"Message = "列'温度'不属于表。"
我不知道为什么会发生这个错误。 这在其他项目中效果很好,这也是第一次发生此错误。 我想有一些我没有注意到的东西。让我知道为什么这段代码不起作用。
【问题讨论】:
-
你的
SetDataGrid方法是在DisplayResult方法之前调用的吗?
标签: c# wpf data-binding error-handling datagrid