JaeWoo So
JaeWoo So

Reputation: 576

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`

*Error message is

"Message = "Column 'Temperature' does not belong to table ."

I don't know why this error happens. This works well in other an project, this is also a first time this error occurred. I think there is something that I didn't notice. Let me know why this code doesn't work.

Upvotes: 1

Views: 163

Answers (3)

Hari Prasad
Hari Prasad

Reputation: 16966

Problem is you never added columns to RawDataTable, in the below code snippet a new DataTable created but columns are added to ResultTable (a different table).

RawDataTable = new DataTable();
ResultTable.Columns.Add("Temperature")      ;
ResultTable.Columns.Add("IntegratedVoltage");

Should be..

RawDataTable = new DataTable();
RawDataTable.Columns.Add("Temperature")      ;
RawDataTable.Columns.Add("IntegratedVoltage");

Upvotes: 1

Mihail Stancescu
Mihail Stancescu

Reputation: 4138

It's because you mistyped the data table name when adding the columns.

RawDataTable = new DataTable();
 ResultTable.Columns.Add("Temperature")      ;
ResultTable.Columns.Add("IntegratedVoltage");'

It should be 'RawDataTable' not 'ResultDataTable'.

Upvotes: 0

Oliver
Oliver

Reputation: 1557

You do not add the Temperature and IntegratedVoltage columns to the RawDataTable, instead:

        RawDataTable = new DataTable();
        ResultTable.Columns.Add("Temperature")      ; // Wrong data table
        ResultTable.Columns.Add("IntegratedVoltage"); // Wrong data table

Upvotes: 0

Related Questions