说到 List 控件,Windows Phone 8.1 上推荐使用的是 ListView 和 GridView。

而这两个控件实在太多东西可讲了,于是分成三篇来讲:

(1)基本

(2)分组数据

(3)多数据呈现

ListView 和 GridView 的最大差别就是:ListView 是一条条依序排列的,而 GridView 则是一块块依序排列的,因此 ListView 中的一项就会占据整整一行或者一列,而 GridView 的一项只会占据它应有的大小,一行或一列中可以放置多项。

而两者在其它方面上基本一致,因此下文只对 ListView 进行介绍,GridView 其实也一样的。


Template

(1)ItemsPanelTemplate

ItemsPanel,也就是装载项(Items)的那个框框,可以自定义它的各项属性,比如可以让项横着排列:

<ListView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>

(2)HeaderTemplate、FooterTemplate

自定义列表的头与尾,例如在列表底部增加一个按钮点击加载更多数据之类的:

<ListView.HeaderTemplate>
<DataTemplate>
<TextBlock Text="HeaderTemplate"
Style="{StaticResource ControlHeaderTextBlockStyle}"
FontSize="20"/>
</DataTemplate>
</ListView.HeaderTemplate> <ListView.FooterTemplate>
<DataTemplate>
<TextBlock Text="FooterTemplate"
Style="{StaticResource ControlHeaderTextBlockStyle}"
FontSize="20"/>
</DataTemplate>
</ListView.FooterTemplate>

(3)ItemTemplate

自定义项(Item)的呈现,非常重要:

<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Title}"
Style="{StaticResource ListViewItemSubheaderTextBlockStyle}"/>
<Image Source="{Binding Image}"/>
<TextBlock Text="{Binding Content}"
Style="{StaticResource ListViewItemContentTextBlockStyle}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>

(4)ItemContainerStyle

定义控件在不同状态下的行为与呈现,可以使用 SDK 自带的 Blend 轻松实现。

2个属性

(1)多选

通过 XAML 更改 SelectionMode 实现多选:

SelectionMode="Multiple"

也可通过 C# 代码实现:

private void multipleButton_Click(object sender, RoutedEventArgs e)
{
if( myListView.SelectionMode == ListViewSelectionMode.Single )
myListView.SelectionMode = ListViewSelectionMode.Multiple;
else
myListView.SelectionMode = ListViewSelectionMode.Single;
}

(2)排序

通过 XAML 更改 ReorderMode 开启排序状态:

ReorderMode="Enabled"

也可通过 C# 代码实现:

private void myListView_Holding(object sender, HoldingRoutedEventArgs e)
{
if( e.HoldingState == HoldingState.Started )
myListView.ReorderMode = ListViewReorderMode.Enabled;
}

要注意的是,下一篇要讲的 分组数据(GroupingData)不能排序。

Windows Phone 8.1 列表控件(1):基本的更多相关文章

  1. Windows Phone 8.1 列表控件(2):分组数据

    说到 List 控件,Windows Phone 8.1 上推荐使用的是 ListView 和 GridView. 而这两个控件实在太多东西可讲了,于是分成三篇来讲: (1)基本 (2)分组数据 (3 ...

  2. Windows Phone 8.1 列表控件(3):多数据呈现

    说到 List 控件,Windows Phone 8.1 上推荐使用的是 ListView 和 GridView. 而这两个控件实在太多东西可讲了,于是分成三篇来讲: (1)基本 (2)分组数据 (3 ...

  3. 《深入理解Windows Phone 8.1 UI控件编程》基于最新的Runtime框架

    <深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的 ...

  4. 重新想象 Windows 8 Store Apps (11) - 控件之 ListView 和 GridView

    原文:重新想象 Windows 8 Store Apps (11) - 控件之 ListView 和 GridView [源码下载] 重新想象 Windows 8 Store Apps (11) - ...

  5. 重新想象 Windows 8 Store Apps (8) - 控件之 WebView

    原文:重新想象 Windows 8 Store Apps (8) - 控件之 WebView [源码下载] 重新想象 Windows 8 Store Apps (8) - 控件之 WebView 作者 ...

  6. 重新想象 Windows 8 Store Apps (5) - 控件之集合控件: ComboBox, ListBox, FlipView, ItemsControl, ItemsPresenter

    原文:重新想象 Windows 8 Store Apps (5) - 控件之集合控件: ComboBox, ListBox, FlipView, ItemsControl, ItemsPresente ...

  7. WPF: 实现带全选复选框的列表控件

    本文将说明如何创建一个带全选复选框的列表控件.其效果如下图:     这个控件是由一个复选框(CheckBox)与一个 ListView 组合而成.它的操作逻辑: 当选中“全选”时,列表中所有的项目都 ...

  8. CListCtrlEx:一个支持文件拖放和实时监视的列表控件——用未公开API函数实现Shell实时监视

    一.需求无论何时,当你在Explorer窗口中创建.删除或重命名一个文件夹/文件,或者插入拔除移动存储器时,Windows总是能非常快速地更新它所有的视图.有时候我们的程序中也需要这样的功能,以便当用 ...

  9. Windows常见窗口样式和控件风格

    Windows常见窗口样式和控件风格 王佰营 徐丽红 一.窗口样式 WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW 子窗口(不能与WS_PO ...

随机推荐

  1. Windows下载Android源代码

    下载msysgit,安装 官方下载:http://code.google.com/p/msysgit/downloads/list, 打开Git Bash,运行命令 cd D: git clone h ...

  2. SOA面向服务化编程架构(dubbo)

      dubbo 是阿里系的技术.并非淘宝系的技术啦,淘宝系的分布式服务治理框架式HSF啦 ,只闻其声,不能见其物.而dubbo是阿里开源的一个SOA服务治理解决方案,dubbo本身 集成了监控中心,注 ...

  3. Struts2之异常处理

    一.学习案例:通过在input.jsp页面输入登录账号和password測试异常处理机制. 二.案例分析:struts2提供了局部异常处理机制和全局异常处理机制.局部优先于全局异常处理,当异常找不到局 ...

  4. iOS开发——数据持久化&本地数据的存储(使用NSCoder将对象保存到.plist文件)

    本地数据的存储(使用NSCoder将对象保存到.plist文件)   下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象).   功能如下: ...

  5. innodb_max_dirty_pages_pct与检查点的关系

      http://ourmysql.com/archives/310 数据库运行一段时间后,经常导致服务器大量的swap,我怀疑是innodb中的脏数据太多了,因为没有free space了,mysq ...

  6. Metadata Lock原理2

    同事说开发机更改一个表结构,加字段,但是一直挂在那里,没反应.一开始以为表测试数据量很大,因为mysql增加表字段会重写表,后来看了下数据量很小,就另外查看过程.原因分析和处理如下:  一.环境  m ...

  7. mha 自动failover 原创

    自动failover slave1:stop slave io_thread slave2stop slave io_thread server1:   create database sbtest; ...

  8. sysbench 安装 原创

    1.下载sysbench version 0.5 https://github.com/akopytov/sysbench 2. [root@server1 sysbench-0.5]# pwd/ro ...

  9. 【Java Tips】boolean的类型与string类型的转换

    boolean类型转化为string boolean b = true; String s = String.valueOf(b); System.out.println(s);

  10. Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频

    Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权 ...