原文:快速构建Windows 8风格应用5-ListView数据控件

本篇博文主要介绍什么是ListView数据控件、如何构建ListView数据控件。

什么是ListView数据控件?

1)  ListView数据控件用来显示数据集合。

2)  继承自ItemsControl。

3)  大多数情况是纵向显示数据,显示的数据通常是排序过的。

4)  在切换到Snap View(贴靠视图)时,通常使用ListView显示数据集合。

如何构建ListView数据控件?

首先我们需要了解一下ListView控件中一些重要属性和事件:

1)  IsItemClickEnabled属性:获取或设置点击列表项是否会触发Click事件;

2)  SelectionMode属性:获取或设置选择的模式;

3)  HeaderTemplate属性:获取或设置列表标题的模版,改变标题的外观;

4)  GroupStyle属性:获取GroupStyle对象集合,定义每组的外观;

5)  SelectionChanged事件:当选择的项改变时触发;

6)  ItemClick事件:当点击列表项,并且IsItemClickEnabled属性值为true时,将触发该事件;

另外我们在使用ListView进行数据呈现的时候,需要考虑ListView控件的交互模式:

ListView的SelectionMode属性为枚举类型,其中包含值有:

1)  None:没有已选择项;

2)  Single:只有一项可选择;

3)  Multiple:有多项可选择;

4)  Extended:有多项可选择并且选择项可以不连续;

下面我们来看一下几种常用ListView呈现数据的样式效果:

效果一:静态列表。

那么我们如何在应用程序中实现这种ListView样式呢?

XAML代码中:

可以看到ListView控件中ItemTemplate引用了名字为StoreFrontTitleTemplate的静态资源,并且设置SelectionMode值为None。StoreFrontTitleTemplate的静态资源代码如下:

C#代码中将数据绑定到ListView控件上,代码如下:

效果二:点击左侧列表某一项,右侧显示详细信息。

这种效果是点击左边列表中某一项,右边显示该项的详细信息,那么我们如何在代码中实现这种样式效果呢?

首先我们来看左侧列表实现ListView的XAML代码:

其中设置ListView控件的ItemTemplate为名称为MessageListImageTemplate的静态资源,ItemPanel为名称为MessageListItemsPanelTemplate的静态资源。

MessageListImageTemplate静态资源XAML代码如下:

MessageListItemsPanelTemplate静态资源XAML代码如下:

我们了解了如何实现ListView的XAML后,下面来看一下效果图中右侧XAML代码是如何实现的。

其实效果图中右侧定义了一个ScrollViewer控件,它的DataContext属性值设置为ListView的SelectedItem属性。

最后我们在C#代码中将数据绑定到ListView控件上:

效果三:左侧列表只能进行单选,右侧列表可以进行多项选择。

这里我们想实现列表中项能够进行单选或者多选,只需要设置ListView的SelectionMode属性值为Single;Multiple或Extended。

我们可以设置ListView列表中的Header,XAML代码如下:

实现效果:红色框体内是我们设定的ListView控件Hearder。

当然我们也可以将数据在ListView控件进行分组呈现。XAML代码设置如下:

实现效果:红色框体内是我们设定的ListView控件分组。

快速构建Windows 8风格应用5-ListView数据控件的更多相关文章

  1. 快速构建Windows 8风格应用8-贴靠视图

    原文:快速构建Windows 8风格应用8-贴靠视图 本篇博文主要介绍如何切换出贴靠视图.关于贴靠视图的设计.关于贴靠视图的应用程序栏和如何实现贴靠视图. 如何切换出贴靠视图 第一步:水平方向全屏视图 ...

  2. 快速构建Windows 8风格应用4-FlipView数据控件

    原文:快速构建Windows 8风格应用4-FlipView数据控件 本篇博文主要介绍为什么使用FlipView控件.什么是FlipView控件.如何使用FlipView控件和FlipView控件最佳 ...

  3. 快速构建Windows 8风格应用17-布局控件

    原文:快速构建Windows 8风格应用17-布局控件 本篇博文主要介绍三种常用的布局控件:Canvas.Grid.StackPanel. Panel类是开发Windows 8 Store应用中一个重 ...

  4. 快速构建Windows 8风格应用15-ShareContract构建

    原文:快速构建Windows 8风格应用15-ShareContract构建 本篇博文主要介绍共享数据包.如何构建共享源.如何构建共享目标.DataTransferManager类. 共享数据包 Da ...

  5. 快速构建Windows 8风格应用14-ShareContract概述及原理

    原文:快速构建Windows 8风格应用14-ShareContract概述及原理 本篇博文主要介绍Share Contract概述.Share Contract实现原理.实现Share Contra ...

  6. 快速构建Windows 8风格应用13-SearchContract构建

    原文:快速构建Windows 8风格应用13-SearchContract构建 本篇博文主要介绍如何在应用中构建SearchContract,相应的原理已经在博文<快速构建Windows 8风格 ...

  7. 快速构建Windows 8风格应用9-竖直视图

    原文:快速构建Windows 8风格应用9-竖直视图 本篇博文主要介绍竖直视图概览.关于竖直视图设计.如何构建竖直视图 竖直视图概览 Windows 8为了支持旋转的设备提供了竖屏视图,我们开发的应用 ...

  8. 快速构建Windows 8风格应用10-设备方向

    原文:快速构建Windows 8风格应用10-设备方向 本篇博文主要介绍常用支持Windows 8操作系统设备的方向.如何获取当前设备方向.DisplayProperties类. 常用支持Window ...

  9. 快速构建Windows 8风格应用11-语义缩放

    原文:快速构建Windows 8风格应用11-语义缩放 本篇博文主要介绍为什么需要语义缩放.什么是语义缩放.如何构建语义缩放. 为什么需要语义缩放 如果用过Windows 8系统的开发者都知道在Win ...

随机推荐

  1. SQL Server 2008 R2 性能计数器详细列表(三)

    原文:SQL Server 2008 R2 性能计数器详细列表(三) SQL Server,Deprecated Features 对象: 监视指定为不推荐使用的功能: SQL Server Depr ...

  2. RH253读书笔记(10)-Appendix A Installing Software

    Appendix A Installing Software Below are a few methods to locate and install required packages. You ...

  3. 【POJ3612】【USACO 2007 Nov Gold】 1.Telephone Wire 动态调节

    意甲冠军: 一些树高给出.行一种操作:把某棵树增高h,花费为h*h. 操作完毕后连线,两棵树间花费为高度差*定值c. 求两种花费加和最小值. 题解: 跟NOIP2014 D1T3非常像. 暴力动规是O ...

  4. Freemarker详细解释

    A概念 最经常使用的概念 1. scalars:存储单值 字符串:简单文本由单或双引號括起来. 数字:直接使用数值. 日期:通常从数据模型获得 布尔值:true或false,通常在<#if -& ...

  5. Redis源代码分析(二十)--- ae事件驱动

    事件驱动的术语出现更频繁.听起来非常大的,今天我把Redis内部驱动器模型来研究它,奖励的感觉啊.一个ae.c主程序,加4文件的事件类型,让你彻底弄清楚,Redis是怎样处理这些事件的. 在Redis ...

  6. Preemption Context Switches 和 Synchronization Context Switches

    Preemption Context Switches测量操作系统任务调度线程处理器上执行的次数,以及切换到较高-priority螺纹,数. Synchronization context switc ...

  7. 如何生成可变表头的excel(转)

    1.实现功能: 传入一个表头和数据,将数据导入到excel中. 为了便于项目的扩展,数据传入通过泛型集合传入,获取数据时,通过反射的方式获取,这样无论你的表头是多少项,我都能很方便的生成.另外为了便于 ...

  8. CentOS安装KVM步骤虚拟机,绝对实用!

    KVM(Kernel-based Virtual Machine)速记.这是rhel5.4最新的虚拟化技术启动,现在只支持红帽64位rhel5.4在执行KVM,硬件必须支持同一时间VT技术,网上找 ...

  9. CodeIgniter入门——HelloWorld

    原文:CodeIgniter入门--HelloWorld CodeIgniter(CI)是一套给PHP网站开发者使用的应用程序开发框架和工具包. 初次接触,来一个HelloWorld~~~ ^_^ 准 ...

  10. DataTable转化为List

    public List<T> ConvertToList<T>(DataTable dt) where T : new()        {            // 定义集 ...