2010-01-24 4 views
1

Lors de la liaison WPF Toolkit DataGrid à la base de données SQL par LINQ to SQL, comment la source de liaison correctement définie:Databinding de WPF Toolkit DataGrid LINQ to SQL requêtes

devrait-il être une collection générique, rempli et mis à jour par LINQ à Requêtes SQL ou il existe une possibilité de connecter directement DataGrid avec des requêtes LINQ to SQL?

Répondre

2

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!