簡體   English   中英

c# WPF datagrid databinding error

[英]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");

您不將TemperatureIntegratedVoltage列添加到 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM