2017-08-22 2 views
1

Je tente d'utiliser un CollectionViewSource dans mon code XAML afin d'avoir un groupé ListView.x: Le type de liaison ne peut pas être trouvé

Le CSV:

<CollectionViewSource x:Key="MyViewSource" 
         IsSourceGrouped="True" 
         Source="{Binding MyItems, Mode=OneWay}" /> 

Et mon DataTemplate que je propose à la propriété ItemTemplate sur mon GridView que je me sers pour le "zoomée sur" Vue:

<DataTemplate x:Key="JumpTemplate" 
       x:DataType="data:ICollectionViewGroup"> 
    <TextBlock FontSize="32" 
       FontWeight="SemiLight"      
       Text="{x:Bind ((linq:IGrouping)Group).Key}" /> 
</DataTemplate> 

Selon le documentation cela doit convertir l'objet en objet IGrouping, ce qui me donne accès à la propriété Key. Cependant, je continue d'obtenir une erreur

Groupe de chemin de liaison non valide ((linq: IGrouping) Group) .Key ': Type' linq: IGrouping 'est introuvable.

Je suis très clairement défini il:

xmlns:data="using:Windows.UI.Xaml.Data" 
xmlns:linq="using:System.Linq" 

je sais que ce n'est pas une faute de frappe ou quelque chose parce Go to definition sur les linq:IGrouping fonctionne très bien.

Y a-t-il des types qui ne peuvent pas être utilisés ou quelque chose?

Je suis sur Windows 10 construire 16257,1, en utilisant VS 2017 et SDK Preview 16257.

Répondre

2

Le message d'erreur est correct:

Type 'LINQ: IGrouping' ne peut pas être trouvé.

Il n'y a pas de type IGrouping dans LINQ, il y a cependant un type IGrouping<out TKey, out TElement> qui n'est pas la même chose. Une telle distribution échouera également en C#.

XAML ne permet pas de spécifier les paramètres de type générique, donc je pense que vous êtes coincé avec une liaison normale: Text="{Binding Key}"