2

我试图CollectionViewSource在我的 XAML 中使用 a 以便将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 definitionlinq:IGrouping作品上就好了。

是否有某些类型是不允许使用的?

我在 Windows 10 build 16257.1 上,使用 VS 2017 和 SDK Preview 16257。

4

1 回答 1

2

错误信息是正确的:

找不到类型“linq:IGrouping”。

LINQ中没有IGrouping类型,但是有一个IGrouping<out TKey, out TElement>类型是不一样的。这样的转换在 C# 中也会失败。

XAML不允许指定泛型类型参数,所以我认为你坚持使用普通绑定:Text="{Binding Key}"

于 2017-08-22T14:53:39.473 回答