GridView, LINQ et DataBinding
Bonjour,
je rencontre un problème lors d'affichage de ma requête LINQ dans un GridView.
je l'ai déclaré de cette manière
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
<ListView ItemsSource="{Binding Path=Table}" Margin="14,0,19,14" Name="ListProducts" Height="218" VerticalAlignment="Bottom">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" DisplayMemberBinding="{Binding Path=ProductID}"/>
<GridViewColumn Header="Nom Produit" DisplayMemberBinding="{Binding Path=Name}"/>
<GridViewColumn Header="ProductNumber" DisplayMemberBinding="{Binding Path=ProductNumber}"/>
<GridViewColumn Header="Sous-Cat" DisplayMemberBinding="{Binding Path=ProductSubcategory.Name}" />
<GridViewColumn Header="Categorie" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="Prix" DisplayMemberBinding="{Binding Path=StandardCost}"/>
<GridViewColumn Header="Couleur" DisplayMemberBinding="{Binding Path=Color}"/>
<GridViewColumn Header="Size" DisplayMemberBinding ="{Binding Path=Size}"/>
</GridView>
</ListView.View>
</ListView> |
Le problème est que je veux récupérer des champs de mêmes noms résultant de la requête LINQ ci dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
var query =
(from p in connect2Adventure.Products
join psc in connect2Adventure.ProductSubcategories on p.ProductSubcategoryID equals psc.ProductSubcategoryID
join pc in connect2Adventure.ProductCategories on psc.ProductCategoryID equals pc.ProductCategoryID
orderby p.ProductID
select new
{
ProductID =p.ProductID,
Product = p.Name,
StandardCost= p.StandardCost,
Color = p.Color,
Size = p.Size,
PN = p.ProductNumber,
SubCatName = psc.Name,
CatName = pc.Name,
}).Take(limit); |
En tentant d'accéder aux alias SubCatName et CatName ce n'est pas reconnu dans la ListGrid
Je transmets ensuite à ListView, le contenu de la requête sous forme de liste :
Code:
public ObservableCollection<ProduitsCategories> GetProduitsCategories(int limit)
Il ne semble pouvoir accéder qu'à l'attribut Name de ma table Product
Code:
1 2
|
System.Windows.Data Error: 35 : BindingExpression path error: 'Name' property not found on 'object' ''ProductSubcategory' (HashCode=23861452)'. BindingExpression:Path=ProductSubcategory.Name; DataItem='Product' (HashCode=31974754); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String') |
Comment me conseillez vous de contourner ou résoudre ce problème ?