x: Тип привязки не может быть найден

Я пытаюсь использовать CollectionViewSource в своем XAML, чтобы сгруппировать ListView.

CSV:

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

И мой DataTemplate, который я предоставляю свойству ItemTemplate на моем GridView, который я использую для "уменьшения масштаба":

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

Согласно документации это должно привести элемент к объекту IGrouping, который затем даст мне доступ к свойству Key. Тем не менее, я продолжаю получать сообщение об ошибке

Недопустимый путь привязки '((linq:IGrouping)Group).Key': тип 'linq:IGrouping' не найден.

Я очень четко определил это:

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

Я знаю, что это не опечатка или что-то в этом роде, потому что Go to definition на linq:IGrouping работает просто отлично.

Существуют ли определенные типы, которые не разрешено использовать или что-то в этом роде?

Я использую Windows 10 build 16257.1, использую VS 2017 и SDK Preview 16257.


person RareNCool    schedule 22.08.2017    source источник


Ответы (1)


Сообщение об ошибке правильное:

Тип «linq: IGrouping» не найден.

В LINQ нет типа IGrouping, однако есть тип IGrouping<out TKey, out TElement>, который не одно и то же. Такое приведение потерпит неудачу и в C#.

XAML не позволяет указывать параметры универсального типа, поэтому я думаю, что вы застряли с обычной привязкой: Text="{Binding Key}"

person Novitchi S    schedule 22.08.2017