x:Bind 找不到类型
x:Bind type can't be found
我正在尝试在我的 XAML 中使用 CollectionViewSource
以便分组 ListView
。
CSV:
<CollectionViewSource x:Key="MyViewSource"
IsSourceGrouped="True"
Source="{Binding MyItems, Mode=OneWay}" />
我的 DataTemplate
我在 GridView
上提供给 ItemTemplate
属性 用于 "zoomed out" 视图:
<DataTemplate x:Key="JumpTemplate"
x:DataType="data:ICollectionViewGroup">
<TextBlock FontSize="32"
FontWeight="SemiLight"
Text="{x:Bind ((linq:IGrouping)Group).Key}" />
</DataTemplate>
根据 documentation,这应该将项目转换为 IGrouping
对象,这样我就可以访问 Key
属性。但是,我不断收到错误消息
Invalid binding path '((linq:IGrouping)Group).Key' : Type 'linq:IGrouping' can't be found.
我定义的很清楚了:
xmlns:data="using:Windows.UI.Xaml.Data"
xmlns:linq="using:System.Linq"
我知道这不是错别字之类的,因为 linq:IGrouping
上的 Go to definition
工作得很好。
是否有某些类型是不允许使用的?
我在 Windows 10 build 16257.1,使用 VS 2017 和 SDK Preview 16257。
错误信息正确:
Type 'linq:IGrouping' can't be found.
LINQ 中没有 IGrouping
类型,但是有一个 IGrouping<out TKey, out TElement>
类型,这不是一回事。这样的转换在 C# 中也会失败。
XAML
不允许指定泛型类型参数,所以我认为您被普通绑定困住了:Text="{Binding Key}"
我正在尝试在我的 XAML 中使用 CollectionViewSource
以便分组 ListView
。
CSV:
<CollectionViewSource x:Key="MyViewSource"
IsSourceGrouped="True"
Source="{Binding MyItems, Mode=OneWay}" />
我的 DataTemplate
我在 GridView
上提供给 ItemTemplate
属性 用于 "zoomed out" 视图:
<DataTemplate x:Key="JumpTemplate"
x:DataType="data:ICollectionViewGroup">
<TextBlock FontSize="32"
FontWeight="SemiLight"
Text="{x:Bind ((linq:IGrouping)Group).Key}" />
</DataTemplate>
根据 documentation,这应该将项目转换为 IGrouping
对象,这样我就可以访问 Key
属性。但是,我不断收到错误消息
Invalid binding path '((linq:IGrouping)Group).Key' : Type 'linq:IGrouping' can't be found.
我定义的很清楚了:
xmlns:data="using:Windows.UI.Xaml.Data"
xmlns:linq="using:System.Linq"
我知道这不是错别字之类的,因为 linq:IGrouping
上的 Go to definition
工作得很好。
是否有某些类型是不允许使用的?
我在 Windows 10 build 16257.1,使用 VS 2017 和 SDK Preview 16257。
错误信息正确:
Type 'linq:IGrouping' can't be found.
LINQ 中没有 IGrouping
类型,但是有一个 IGrouping<out TKey, out TElement>
类型,这不是一回事。这样的转换在 C# 中也会失败。
XAML
不允许指定泛型类型参数,所以我认为您被普通绑定困住了:Text="{Binding Key}"