Как всегда, существует более одного способа кожи кошки. Однако я предпочитаю создавать запрос LINQ to SQL и использовать .ToList () для отправки списка в ObservableCollection, чтобы вы могли отслеживать изменения ваших данных и обновлять базу данных SQL Server, когда ваши данные грязные. Другими словами, это будет выглядеть примерно так:
// 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());
Но, конечно, если вам нужно выполнить фильтры, группировку или сортировку, я бы вместо этого отправил запрос в ListCollectionView. Который будет выглядеть так:
public ListCollectionView Products {get; set;}
Products = new ListCollectionView(productQuery.ToList());
Надеюсь, это поможет!