Comment diffuser DataSource à List & lt; T & gt ;?

J'ai la méthode suivante qui charge les produits sur un DataGridView

private void LoadProducts(List<Product> products)
{
    Source.DataSource = products;  //Source is BindingSource
    ProductsDataGrid.DataSource = Source;
}

Et maintenant je suis en train de me donner de retour pour les sauver, comme le montre ci-dessous.

private void SaveAll()
{
   Repository repository = Repository.Instance;
   List<object> products = (List<object>)Source.DataSource; 
   Console.WriteLine("Este es el número {0}", products.Count);
   repository.SaveAll<Product>(products);
   notificacionLbl.Visible = false;
}

Mais j'obtiens une InvalidCastException sur cette ligne:

List<object> products = (List<object>)Source.DataSource;

Alors, comment puis-je jeter la source de données dans une Liste?

source d'informationauteur Cristhian Boujon