是否可以将CollectionView与LongListSelector一起使用进行分组
本文关键字:一起 LongListSelector CollectionView 是否 | 更新日期: 2023-09-27 18:30:17
我正在尝试将LongListSelector与CollectionView结合使用。似乎 CollectionView 拥有所需的所有"东西",但是当我将两者连接起来时,什么也没发生。这是我到目前为止所拥有的:
在我的控件的 ctor(包含 LLS 的家伙)中,我构造了 CollectionView:
GroupDescription group = new PropertyGroupDescription("FullName", new FirstLetterConverter(true, true));
m_view.GroupDescriptions.Add(group);
然后,每当相关的依赖项属性(包含我要放入LLS中的列表的属性)发生更改时,我都会将其分配给m_view并将组分配给ItemsSource:
private void FriendsChanged()
{
m_view.Source = Friends;
friendList.ItemsSource = m_view.View.Groups;
当我检查.组属性,信息似乎是犹太洁食的 - 它有适数量的项目,每个项目都有似乎是正确的子项目。但是,看起来一切都是内部的,因此LLS似乎无法显示相关信息。当我用模拟集合替换 CollectionView 的东西时,LLS 确实会显示信息(所以我非常有信心 LLS 设置正确)
这是我与 LLS 一起使用的内容 - 请注意,我没有绑定,而是在几个地方使用"XXXX",以确保不会因为错误的绑定而以某种方式中断:
<toolkit:LongListSelector x:Name="friendList">
<toolkit:LongListSelector.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Source="{Binding ThumbnailImage}" Width="62" Height="62"/>
<TextBlock Text="{Binding FullName}"/>
</Grid>
</DataTemplate>
</toolkit:LongListSelector.ItemTemplate>
<toolkit:LongListSelector.GroupHeaderTemplate>
<DataTemplate>
<Border Background="{StaticResource PhoneAccentBrush}" Padding="{StaticResource PhoneTouchTargetOverhang}" Width="200" HorizontalAlignment="Left">
<!--<TextBlock Text="{Binding Name}" Style="{StaticResource PhoneTextLargeStyle}"/>-->
<TextBlock Text="XXXX" Style="{StaticResource PhoneTextLargeStyle}"/>
</Border>
</DataTemplate>
</toolkit:LongListSelector.GroupHeaderTemplate>
<toolkit:LongListSelector.GroupItemTemplate>
<DataTemplate>
<Border Background="{StaticResource PhoneAccentBrush}" Margin="{StaticResource PhoneTouchTargetOverhang}" Padding="{StaticResource PhoneTouchTargetOverhang}" Width="180">
<TextBlock Text="XXXX" Style="{StaticResource PhoneTextLargeStyle}"/>
<!--<TextBlock Text="{Binding Name}" Style="{StaticResource PhoneTextLargeStyle}"/>-->
</Border>
</DataTemplate>
</toolkit:LongListSelector.GroupItemTemplate>
</toolkit:LongListSelector>
我遇到了同样的问题。看起来LongListSelector不适用于CollectionView。我通过将它绑定到可观察集合来解决这个问题。我花了两天时间弄清楚为什么LongListSelector没有显示任何项目。奇怪的是,CollectionView.IsEmpty用于转动可见性(当然是通过转换器)。但是显示项目不起作用。