Windows Phone 8.1 列表控件(1):基本
说到 List 控件,Windows Phone 8.1 上推荐使用的是 ListView 和 GridView。
而这两个控件实在太多东西可讲了,于是分成三篇来讲:
(1)基本
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):基本的更多相关文章
- Windows Phone 8.1 列表控件(2):分组数据
说到 List 控件,Windows Phone 8.1 上推荐使用的是 ListView 和 GridView. 而这两个控件实在太多东西可讲了,于是分成三篇来讲: (1)基本 (2)分组数据 (3 ...
- Windows Phone 8.1 列表控件(3):多数据呈现
说到 List 控件,Windows Phone 8.1 上推荐使用的是 ListView 和 GridView. 而这两个控件实在太多东西可讲了,于是分成三篇来讲: (1)基本 (2)分组数据 (3 ...
- 《深入理解Windows Phone 8.1 UI控件编程》基于最新的Runtime框架
<深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的 ...
- 重新想象 Windows 8 Store Apps (11) - 控件之 ListView 和 GridView
原文:重新想象 Windows 8 Store Apps (11) - 控件之 ListView 和 GridView [源码下载] 重新想象 Windows 8 Store Apps (11) - ...
- 重新想象 Windows 8 Store Apps (8) - 控件之 WebView
原文:重新想象 Windows 8 Store Apps (8) - 控件之 WebView [源码下载] 重新想象 Windows 8 Store Apps (8) - 控件之 WebView 作者 ...
- 重新想象 Windows 8 Store Apps (5) - 控件之集合控件: ComboBox, ListBox, FlipView, ItemsControl, ItemsPresenter
原文:重新想象 Windows 8 Store Apps (5) - 控件之集合控件: ComboBox, ListBox, FlipView, ItemsControl, ItemsPresente ...
- WPF: 实现带全选复选框的列表控件
本文将说明如何创建一个带全选复选框的列表控件.其效果如下图: 这个控件是由一个复选框(CheckBox)与一个 ListView 组合而成.它的操作逻辑: 当选中“全选”时,列表中所有的项目都 ...
- CListCtrlEx:一个支持文件拖放和实时监视的列表控件——用未公开API函数实现Shell实时监视
一.需求无论何时,当你在Explorer窗口中创建.删除或重命名一个文件夹/文件,或者插入拔除移动存储器时,Windows总是能非常快速地更新它所有的视图.有时候我们的程序中也需要这样的功能,以便当用 ...
- Windows常见窗口样式和控件风格
Windows常见窗口样式和控件风格 王佰营 徐丽红 一.窗口样式 WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用)WS_CHILDWINDOW 子窗口(不能与WS_PO ...
随机推荐
- Windows下载Android源代码
下载msysgit,安装 官方下载:http://code.google.com/p/msysgit/downloads/list, 打开Git Bash,运行命令 cd D: git clone h ...
- SOA面向服务化编程架构(dubbo)
dubbo 是阿里系的技术.并非淘宝系的技术啦,淘宝系的分布式服务治理框架式HSF啦 ,只闻其声,不能见其物.而dubbo是阿里开源的一个SOA服务治理解决方案,dubbo本身 集成了监控中心,注 ...
- Struts2之异常处理
一.学习案例:通过在input.jsp页面输入登录账号和password測试异常处理机制. 二.案例分析:struts2提供了局部异常处理机制和全局异常处理机制.局部优先于全局异常处理,当异常找不到局 ...
- iOS开发——数据持久化&本地数据的存储(使用NSCoder将对象保存到.plist文件)
本地数据的存储(使用NSCoder将对象保存到.plist文件) 下面通过一个例子将联系人数据保存到沙盒的“documents”目录中.(联系人是一个数组集合,内部为自定义对象). 功能如下: ...
- innodb_max_dirty_pages_pct与检查点的关系
http://ourmysql.com/archives/310 数据库运行一段时间后,经常导致服务器大量的swap,我怀疑是innodb中的脏数据太多了,因为没有free space了,mysq ...
- Metadata Lock原理2
同事说开发机更改一个表结构,加字段,但是一直挂在那里,没反应.一开始以为表测试数据量很大,因为mysql增加表字段会重写表,后来看了下数据量很小,就另外查看过程.原因分析和处理如下: 一.环境 m ...
- mha 自动failover 原创
自动failover slave1:stop slave io_thread slave2stop slave io_thread server1: create database sbtest; ...
- sysbench 安装 原创
1.下载sysbench version 0.5 https://github.com/akopytov/sysbench 2. [root@server1 sysbench-0.5]# pwd/ro ...
- 【Java Tips】boolean的类型与string类型的转换
boolean类型转化为string boolean b = true; String s = String.valueOf(b); System.out.println(s);
- Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频
Adobe Edge Animate –修改Edge Commons Spotlight功能,使之能支持播放中国网站视频 版权声明: 本文版权属于 北京联友天下科技发展有限公司. 转载的时候请注明版权 ...