I'm trying to display a created object of class "FleetDataOverview" into an gridview but it keeps saying "object is not set to an instance of an object", code:
Gridview code:
<SfCard ID="">
<CardHeader Title="Fleet data (24 hours)" />
<CardContent>
<SfGrid DataSource="@GridData" AllowPaging="true">
<GridColumns>
<GridColumn Field=@nameof(FleetDataOverview.FleetId) HeaderText="ID" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(FleetDataOverview.FleetAverageEEOI) HeaderText=" Average EEOI (CO2 / (cardo * distance sailed))" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(FleetDataOverview.FleetAverageFOC) HeaderText=" Average FOC (kg/nm)" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(FleetDataOverview.FleetTotalFuelMass) HeaderText=" Total Fuel Mass (kg)" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(FleetDataOverview.FleetAverageSpeed) HeaderText=" Average speed (kn)" TextAlign="TextAlign.Right" Width="120"></GridColumn>
<GridColumn Field=@nameof(FleetDataOverview.FleetTotalDistanceSailed) HeaderText=" Total distance sailed (NM)" TextAlign="TextAlign.Right" Width="120"></GridColumn>
</GridColumns>
</SfGrid>
</CardContent>
</SfCard>
C#:
public List<FleetDataOverview> GridData { get; set; }
protected override void OnInitialized()
{
FleetDataOverview averageFleetDataOverView = new FleetDataOverview();
averageFleetDataOverView.FleetId = "1";
averageFleetDataOverView.FleetAverageEEOI = "100";
averageFleetDataOverView.FleetAverageFOC = "200";
averageFleetDataOverView.FleetTotalFuelMass = "1200";
averageFleetDataOverView.FleetAverageSpeed = "14";
averageFleetDataOverView.FleetTotalDistanceSailed = "16000";
GridData.Add(averageFleetDataOverView);
}
public class FleetDataOverview
{
public string FleetId { get; set; }
public string FleetAverageEEOI { get; set; }
public string FleetAverageFOC { get; set; }
public string FleetTotalFuelMass { get; set; }
public string FleetAverageSpeed { get; set; }
public string FleetTotalDistanceSailed { get; set; }
}
What am I doing wrong here?
Thanks in advance
This line of code: public List<FleetDataOverview> GridData { get; set; }
Should be :
public List<FleetDataOverview> GridData { get; set; } = new List<FleetDataOverview>();
Defining a List<FleetDataOverview>
property still requires you to instantiate the object. Otherwise, the value returns from the get accessor
is null.
Hope this helps...