1

Both my DataGridViews correctly display the parent and child records. I can also successfully add child records and save them back to my data source (an XML file). However, when I attempt to add a new parent and child, my program throws an exception saying there are no child records to add even though they are present in the detail DataGridView.

So, the issue is that my child records are not being bound to the class when they are new. What am I missing?

My classes are structured like this:

public class Roads
{
   public string RoadName { get; set; }
   public List<CrossStreet> CrossStreets { get; set; }        
}

public class CrossStreet
{
   public string CrossStreetName { get; set;}
}

I have 2 DataGridViews and I am binding my classes to them like this:

BindingSource roadBindingSource = new BindingSource();
BindingSource crossStreetBindingSource = new BindingSource();

// _roads contains both the road and cross street data.
roadBindingSource.DataSource = _roads;

crossStreetBindingSource.DataSource = roadBindingSource;
crossStreetBindingSource.DataMember = "CrossStreets";

dataGridViewRoads.DataSource = roadsBindingSource;
dataGridViewCrossStreets.DataSource = crossStreetBindingSource;
4

1 回答 1

0

问题是我的班级实施。代替:

public class Roads
{
   public string RoadName { get; set; }
   public List<CrossStreet> CrossStreets { get; set; }        
}

public class CrossStreet
{
   public string CrossStreetName { get; set;}
}

我用了:

public class Roads
{
   private List<CrossStreets> _crossStreets = new List<CrossStreets>();
   public string RoadName { get; set; }
   public List<CrossStreet> CrossStreets { get { return _crossStreets;} }        
}

public class CrossStreet
{
   public string CrossStreetName { get; set;}
}
于 2013-01-24T20:59:16.650 回答