Problem
I am building a report using ReportViewer RDLC and I’m trying to bind the data. When I try to add my BindingList to the BindingSource I get the following exception:
System.InvalidOperationException: Objects added to a BindingSource’s list must all be of the same type.
Here’s the code causing this:
BindingList<Movie> movies = new BindingList<Movie>()
{
new Movie()
{
Name = "Pulp Fiction",
MPAARating = MPAARating.R
},
new Movie()
{
Name = "The Dark Knight",
MPAARating = MPAARating.PG13
}
};
this.MovieCollectionBindingSource.Add(movies);
Code language: C# (cs)
Solution
Instead of adding the BindingList to the BindingSource, set the BindingSource’s DataSource to the BindingList. Here’s an example:
BindingList<Movie> movies = new BindingList<Movie>()
{
new Movie()
{
Name = "Pulp Fiction",
MPAARating = MPAARating.R
},
new Movie()
{
Name = "The Dark Knight",
MPAARating = MPAARating.PG13
}
};
this.MovieCollectionBindingSource.DataSource = movies;
Code language: C# (cs)