对于列表控件,WP8.1常用的是ListView、GridView、ListBox控件。其中前两个是从第三个继承来的。

1、ListView控件

它是展示垂直列表的,如下图所示。它十分适合展示数据。

2、GridView控件

它是行列表展示数据的控件,排列图如下。通常用来展示基于图片的数据。

3、控件的Templates

常用的有HeaderTemplate、FooterTemplate、ItemTemplate。本文最下面有相关代码。

(其中还有ItemContainerStyle、ItemsPanel

4、属性:重新排序Reordering

WP8.1中:MyListView.ReorderMode = ListViewReorderMode.Enabled;

Win8.1中:MyListView.CanReorderItems = false;

但Grouped Lists (分组列表)不能重新排序。

5、属性:多种选定MultiSelection

当开启MultiSelection后,列表会变为下图。开启MultiSelection代码为:MyListView.SelectionMode =  ListViewSelectionMode.Multiple;

6、运用实例:

xaml代码:

        <Grid Grid.Row="1" x:Name="ContentRoot" Margin="19,9.5,19,0">
<ListView Name="view1"
SelectionMode="None"
AllowDrop="True"
CanDragItems="True"
IsSwipeEnabled="True">
<ListView.HeaderTemplate>
<DataTemplate>
<StackPanel>
<Canvas Height="15" Background="#962381E0">
<TextBlock Text="header">
<TextBlock.Foreground>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="#FFF9F5F5" Offset="1"/>
</LinearGradientBrush>
</TextBlock.Foreground>
</TextBlock>
</Canvas>
</StackPanel>
</DataTemplate>
</ListView.HeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Id}" Style="{ThemeResource ListViewItemTextBlockStyle}" Width="100"/>
<TextBlock Text="{Binding Name}" Style="{ThemeResource ListViewItemTextBlockStyle}"/>
</StackPanel> </DataTemplate>
</ListView.ItemTemplate>
<ListView.FooterTemplate>
<DataTemplate>
<TextBlock Foreground="Red" Text="这是个学习的好例子"/>
</DataTemplate>
</ListView.FooterTemplate>
</ListView>
</Grid>
</Grid>
<Page.BottomAppBar>
<CommandBar>
<CommandBar.SecondaryCommands>
<AppBarButton Label="appbarbutton"/>
</CommandBar.SecondaryCommands>
<AppBarButton Name="AllApps" Icon="AllApps" Label="多选" Click="AllApps_Click"/>
<AppBarButton Name="viewall" Icon="ViewAll" Label="appbarbutton" Click="viewall_Click"/>
</CommandBar>
</Page.BottomAppBar>

相应的部分C#代码:

 List<School> items = new List<School>();
public string[] str=new string[]{"华农","华工","中大","华师","暨大","广工","广外","广大","深大","广中医","南医大"};
Random random = new Random(); for (int i = ; i < ; i++)
{
items.Add(new School { Id = i, Name = str[random.Next(,)] });
}
this.view1.ItemsSource = items; ... private void AllApps_Click(object sender, RoutedEventArgs e)
{
if (view1.SelectionMode == ListViewSelectionMode.Multiple)
{
view1.SelectionMode = ListViewSelectionMode.Single;
}
else
view1.SelectionMode = ListViewSelectionMode.Multiple;
} private void viewall_Click(object sender, RoutedEventArgs e)
{
if ( view1.ReorderMode == ListViewReorderMode.Enabled)
{
view1.ReorderMode = ListViewReorderMode.Disabled;
}
else
view1.ReorderMode = ListViewReorderMode.Enabled;
} private void gotopage2_Click(object sender, RoutedEventArgs e)
{
Frame.Navigate(typeof(Page2));
}
}

---------------------------------------------------------------------------------------------------------------------------------------------

2015年2月26号添加

一、ListView或GridView控件的GroupStyle

使用GroupStyle属性可以更好为App展示数据,效果图如下:

这种样式十分容易弄出来,步骤如下:

step1:

 在Page.Resoures添加
<CollectionViewSource x:Name="collectionItems" IsSourceGrouped="True" Source="{Binding Items}" ItemsPath="Codes"/>

step2:

添加GroupStyle
<ListView Name="listCode" ItemClick="listViewCode_ItemClick"
ItemsSource="{Binding Source={StaticResource collectionItems}}"
ItemTemplate="{StaticResource StandardTripleLineItemTemplate}"
IsItemClickEnabled="True">
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Grid>
<Border Opacity="0.8" Width="350" CornerRadius="0,30,30,0" Background="{StaticResource MyFavoriteBrush}">
<TextBlock Text="{Binding Title}" FontSize="30" Padding="5"/>
</Border>
</Grid>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListView.GroupStyle>
</ListView>

即可

ps:collectionItems绑定的数据格式可参考https://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh780627.aspx?f=255&MSPPError=-2147217396

还可以使用SemanticZoom控件加强用户体验,demo地址:https://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/hh781234

wp8.1 Study7: ListView 和GridView应用的更多相关文章

  1. WP8.1学习系列(第二十七章)——ListView和GridView入门

    快速入门:添加 ListView 和 GridView 控件 (XAML)   在本文中 先决条件 选择 ListView 或 GridView 将项添加到项集合 设置项目源 指定项目的外观 指定视图 ...

  2. [Android Pro] listView和GridView的item设置的高度和宽度不起作用

    referece to : http://blog.csdn.net/beibeixiao/article/details/9032569 1.     在Android开发中会发现,有时listVi ...

  3. android 有弹性的ScrollView 简单实现,与处理ScrollView和ListView,GridView之间的冲突

    处理ScrollView和ListView,GridView之间的冲突, 最好的办法就是继承这两个类,重写他们的onMeasure方法即可: ListView: import android.widg ...

  4. Android之ScrollView嵌套ListView和GridView冲突

    由于ListView,GridView本身都继承于ScrollView,一旦在ScrollView中嵌套ScrollView, 在ScrollView中嵌套使用ListView或者GridView,L ...

  5. [安卓] 16、ListView和GridView结合显示单元实现自定义列表显示效果

    List在各种手机应用中都有体现,是安卓UI设计的必修课. 本文将介绍在开发中如何利用ListView和GridView设计自定义列表. 下面分别是用ListView和GridView做的效果: 上面 ...

  6. android listView嵌套gridview的使用心得

    在开发的过程中可能需要用到listview嵌套gridview的场景,但是在Android中, 不能在一个拥有Scrollbar的组件中嵌入另一个拥有Scrollbar的组件,因为这不科学,会混淆滑动 ...

  7. (转)解决ScrollView嵌套ListView或者GridView导致只显示一行的方法

    即动态获取ListView和GridView的高度 一.对于ListView ListView listview= new ListView(this); setListViewHeightBased ...

  8. Listview和Gridview自定义分割线

    1,ListView和GridView中的每一个条目都有分割线,属性android:footerDividersEnabled表示是否显示分割线,默认是为true,即可见.可以自定义的设置分割线的颜色 ...

  9. android 项目学习随笔十七(ListView、GridView显示组图)

    ListView.GridView显示组图,处理机制相同 <?xml version="1.0" encoding="utf-8"?> <Li ...

随机推荐

  1. 数据库索引B+树

    面试时无意间被问到了这个问题:数据库索引的存储结构一般是B+树,为什么不适用红黑树等普通的二叉树? 经过和同学的讨论,得到如下几个情况: 1. 数据库文件是放在硬盘上,每次读取数据库都需要在磁盘上搜索 ...

  2. 【转】android fragment 博客 学习

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37970961 自从Fragment出现,曾经有段时间,感觉大家谈什么都能跟Fra ...

  3. reveal 1.6.3 本机破解及使用

    reveal 强大的iOS UI调试工具 1: 去官网下载最新版本:1.6.3 http://revealapp.com/download/ 2: 安装到mac上,即,解压下载的包,把app拖到mac ...

  4. VC++编译GSL

    目录 第1章 VC++    1 1.1 修改行结束符    1 1.2 修改#include "*.c" 为 #include "*.inl"    2 1. ...

  5. linux笔记:linux常用命令-链接命令

    文件处理命令:ln(创建链接文件) ln -s  源文件 链接文件 需要源文件已经建立,执行链接文件就是执行源文件. 软链接文件的特点: 1.类似于windows中快捷方式的作用: 2.它的文件类型是 ...

  6. C/C++, Java和C#的编译过程解析

    原文地址:http://www.cnblogs.com/rush/p/3155665.html 1.1.1 摘要 我们知道计算机不能直接理解高级语言,它只能理解机器语言,所以我们必须要把高级语言翻译成 ...

  7. js解码

    如代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  8. 33-Url辅助方法

    Url辅助方法与HTML辅助方法很类似,HTML辅助方法用来产生HTML标签,而Url辅助方法则负责用来产生Url网址. @Url.Action("About") 最后的输出网址如 ...

  9. HTML5自学笔记[ 21 ]canvas绘图实例之马赛克

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  10. c# BackGroundWorker 多线程操作的小例子

    在我们的程序中,经常会有一些耗时较长的运算,为了保证用户体验,不引起界面不响应,我们一般会采用多线程操作,让耗时操作在后台完成,完成后再进行处理或给出提示,在运行中,也会时时去刷新界面上的进度条等显示 ...