[英]c# WPF datagrid databinding error
<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 = "列 'Temperature' 不屬於 table 。"
我不知道為什么會發生這個錯誤。 這在其他項目中運行良好,這也是第一次出現此錯誤。 我想有些事情我沒有注意到。 讓我知道為什么此代碼不起作用。
問題是您從未向RawDataTable
添加列,在下面的代碼片段中創建了一個新的DataTable
,但將列添加到ResultTable
(不同的表)。
RawDataTable = new DataTable();
ResultTable.Columns.Add("Temperature") ;
ResultTable.Columns.Add("IntegratedVoltage");
應該..
RawDataTable = new DataTable();
RawDataTable.Columns.Add("Temperature") ;
RawDataTable.Columns.Add("IntegratedVoltage");
您不將Temperature
和IntegratedVoltage
列添加到 RawDataTable,而是:
RawDataTable = new DataTable();
ResultTable.Columns.Add("Temperature") ; // Wrong data table
ResultTable.Columns.Add("IntegratedVoltage"); // Wrong data table
這是因為您在添加列時輸錯了數據表名稱。
RawDataTable = new DataTable();
ResultTable.Columns.Add("Temperature") ;
ResultTable.Columns.Add("IntegratedVoltage");'
它應該是“RawDataTable”而不是“ResultDataTable”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.