uwp 中listview或Gridview 如何分组显示

百度 UID.114017
2017-07-07 发表

如题,对wpf绑定模板不太熟属性,官方的资料没看明白,希望大神能详细讲解下原理
下面是官方的实例中:
***链接停止解析***

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
j****h UID.1171802
2017-07-07 回复

首先在MainPage.xaml.cs中:定义了两个类,Project{Name,Activity{Name,DueDate,Complete,Project}}、Activity{Name,DueDate,Complete,Project};
这两个类都可以用作分组的数据源,Project类以Name为分组依据,Activity以Project自分组为分组依据。





j****h UID.1171802
2017-07-07 回复

在MainPage.xaml中:定义了两个数据源,cvsActivities里的数据来源于Activity类,cvsProjects里的数据来源于Project类
<UserControl.Resources>
<CollectionViewSource x:Name="cvsActivities" IsSourceGrouped="True"/>

<CollectionViewSource x:Name="cvsProjects" IsSourceGrouped="True" ItemsPath="Activities"/>

<local:ListGroupStyleSelector x:Key="listGroupStyleSelector"/>
</UserControl.Resources>

j****h UID.1171802
2017-07-07 回复

将cvsActivities绑定到ListView的ItemSource, ItemTemplate是ListView每一项的数据模板,用来定义显示哪些内容及其样式
GroupStyleSelector为分组选择器,用来显示分组依据。istViewItemTemplate和istViewItemTemplate 在App.xaml里定义了具体样式
<ListView ItemsSource="{Binding Source={StaticResource cvsActivities}}"
ItemTemplate="{StaticResource listViewItemTemplate}"
GroupStyleSelector="{StaticResource istViewItemTemplate}"
Margin="120" Width="320"/>

j****h UID.1171802
2017-07-07 回复

DataTemplate是ListView数据项模板,里面主要有三个内容:TextBlock 显示Name,TextBlock显示DueDate,CheckBox 显示是否Complete
<DataTemplate x:Key="listViewItemTemplate">
<StackPanel Width="320" Margin="10">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" FontWeight="Bold" Style="{StaticResource BaseTextBlockStyle}"
Margin="2,0,0,0"/>
<TextBlock Text="{Binding DueDate}" Style="{StaticResource BodyTextBlockStyle}" TextWrapping="NoWrap"
Margin="20,0,0,0"/>
</StackPanel>
<CheckBox Content="Complete" IsChecked="{Binding Complete}" IsEnabled="False"/>
</StackPanel>
</DataTemplate>
GroupStyle为分组样式,这里使用的是Activity自分组,List<Activity>查询Activity里的Project自己分组
<GroupStyle x:Key="listViewGroupStyle">
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid Background="LightGray" >
<TextBlock Text='{Binding Key}' Foreground="Black" Margin="10"
Style="{StaticResource SubheaderTextBlockStyle}" />
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>

百度 UID.114017
2017-07-07 回复

Quote***链接停止解析***
DataTemplate是ListView数据项模板,里面主要有三个内容:TextBlock 显示Name,TextBlock显示DueDate,CheckB ...


多谢,回复,我在资讯看看文档

百度 UID.114017
2017-07-08 回复

Quote***链接停止解析***
DataTemplate是ListView数据项模板,里面主要有三个内容:TextBlock 显示Name,TextBlock显示DueDate,CheckB ...


热心的大神,我又来做伸手党了,

Pivot我定义模板,设置Pivotitemloading事件,通过参数:PivotItemEventArgs args只得到PivotItem,如何得到PivotItem里面的控件?
还有就是uwp中如何通过父view获取到view?比如我有有个Grid 定义x:name为“grid” 如何在代码中动态的获取下面子view,并修改名称

Foxer UID.577559
2017-07-08 使用 Lumia 650 回复

Quote百度 发表于 2017-7-8 10:36 热心的大神,我又来做伸手党了, Pivot我定义模板,设置Pivotitemloading事件,通过参数:PivotItemEvent ...
先把你的理念变一下,数据和显示两者是分离的,理论上,控件不知道数据从哪来,数据不知道哪个控件用它,和MVC的概念是一样的。否则的话,模板和数据之间就绑死了。如果必须知道,则在控件中定义名称,通过模板的FindName,通过控件的名称来找控件。 补充:也可以通过视觉树来找。

百度 UID.114017
2017-07-08 回复

Quote***链接停止解析***
先把你的理念变一下,数据和显示两者是分离的,理论上,控件不知道数据从哪来,数据不知道哪个控件用它,和 ...


多谢,我是学习一个类似网易新闻的界面,定义一个pivot ,每个pivotitem都是一个listview 想通过 pivotitemloading事件改变listview中的item的样式和listview的数据

player2135 UID.664133
2017-07-08 使用 Lumia 950 XL 回复

直接ListView嵌ListView就可以

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报