Comme toujours, il y a plus d'une façon de peler un chat. Cependant, je préfère créer une requête LINQ to SQL et utiliser le .ToList() pour envoyer la liste à un ObservableCollection afin que vous puissiez surveiller les modifications apportées à vos données et mettre à jour la base de données SQL Server lorsque vos données sont sales. En d'autres termes, il ressemblerait à quelque chose comme ceci:
// Create an instance of your LINQ to SQL DataContext
LINQDataContext dc = new LINQDataContext();
var productQuery = from p in dc.Products select p;
// Create an ObservableCollection to hold your data and bind the DataGrid to this collection
public ObservableCollection<Product> Products {get; set;}
Products = new ObservableCollection<Product>(productQuery.ToList());
Mais bien sûr, si vous besoin d'effectuer des filtres, le regroupement ou le tri, j'enverrait la requête à un ListCollectionView à la place. Ce qui ressemblerait à ceci:
public ListCollectionView Products {get; set;}
Products = new ListCollectionView(productQuery.ToList());
Hope that helps!