Windows Phone 8.1 列表控件(1):基本

说到 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)不能排序

时间: 2024-12-19 16:10:41

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

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

说到 List 控件,Windows Phone 8.1 上推荐使用的是 ListView 和 GridView. 而这两个控件实在太多东西可讲了,于是分成三篇来讲: (1)基本 (2)分组数据 (3)多数据呈现 ListView 和 GridView 的最大差别就是:ListView 是一条条依序排列的,而 GridView 则是一块块依序排列的,因此 ListView 中的一项就会占据整整一行或者一列,而 GridView 的一项只会占据它应有的大小,一行或一列中可以放置多项. 而两者在其它

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

说到 List 控件,Windows Phone 8.1 上推荐使用的是 ListView 和 GridView. 而这两个控件实在太多东西可讲了,于是分成三篇来讲: (1)基本 (2)分组数据 (3)多数据呈现 ListView 和 GridView 的最大差别就是:ListView 是一条条依序排列的,而 GridView 则是一块块依序排列的,因此 ListView 中的一项就会占据整整一行或者一列,而 GridView 的一项只会占据它应有的大小,一行或一列中可以放置多项. 而两者在其它

《深入理解Windows Phone 8.1 UI控件编程》

<深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的动画.掌握布局原理.列表虚拟化原理.高性能列表实现.图表编程.控件原理等. 目录如下: <深入理解Windows Phone 8 .1 UI控件编程>目录 第1章 深入解析程序界面 1.1 XAML的原理 1.1.1 XAML的概念 1.1.2 XAML页面的编译 1.1.3 动态加载XAML 1

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

本文将说明如何创建一个带全选复选框的列表控件.其效果如下图:     这个控件是由一个复选框(CheckBox)与一个 ListView 组合而成.它的操作逻辑: 当选中“全选”时,列表中所有的项目都会被选中:反之,取消选中“全选”时,所有项都会被取消勾选. 在列表中选中部分数据项目时,“全选”框会呈现不确定状态(Indetermine). 由此看出,“全选”复选框与列表项中的复选框达到了双向控制的效果. 其设计思路:首先,创建自定义控件(CheckListView),在其 ControlTem

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

<深入理解Windows Phone 8.1 UI控件编程>本书基于最新的Windows Phone 8.1 Runtime SDK编写,全面深入地论述了最酷的UI编程技术:实现复杂炫酷的动画.掌握布局原理.列表虚拟化原理.高性能列表实现.图表编程.控件原理等.  全书源代码免费下载: http://vdisk.weibo.com/s/zt_pyrfNHoezI 试读章节会在博客园持续更新: [WP8.1UI控件编程]Windows Phone XAML页面的编译 [WP8.1UI控件编程]W

如何控制通达OA的工作流表单列表控件的列输入框

通达OA的工作流表单列表控件只提供了从内部或外部数据源映射选择,但有时需要控制某些列不能输入,有些列录入后,带出其他列的数据,如下图 //通过存货编号取存货信息 function getinventory(cinvcode){ var resobj; jQuery.ajax({type:'POST', url:'/userext/index.php?c=workflow&m=getcinvname', data:{cinvcode:cinvcode}, success:function(res)

Windows应用程序文件格式转换控件LEADTOOLS ePrint Professional

LEADTOOLS ePrint Professional控件是一个多功能一体化文件转换解决方案,它可帮助您将任何Windows应用程序中的文件或图像转换为150种类型的文件,其中包括:PDF, DOC, HTML, TXT, TIFF, JPG, GIF, PNG等等. ePrint Professional包含了两种转换模式 - ePrint printer和ePrint Workstation printer,为您提供不同水平的文件转换控制,您可以更加灵活的进行生产.ePrint prin

iOS开发--自定义列表控件

这两天项目比较闲,在空余之际,尝试自己实现列表控件.从动工到初步完成大概花了一天时间,目前实现了列表的简单功能,后续将考虑加入cell重用机制.惯性特征以及删除cell等功能.项目代码已经放到了github上,地址:https://github.com/wanglichun/CustomTableView. 在实现之前,需要了解列表控件的运行原理,我之前的一篇博客<列表控件实现原理解析>中有介绍.去年由于项目需要,使用lua语言自定义过双重列表(大列表嵌套小列表),这次改用objc实现,实现的

MFC可视化 列表控件的使用

1.应该加入头文件 #include <Atlbase.h> 2.示例 类向导给列表控件绑定变量m_list DWORD   dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_FLATSB; m_list.ModifyStyle(0,LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS);m_list.SetEx