原文:快速构建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. Vim 基本配置和经常使用的命令

    vim 优势和应用场景 vim 的优点纯文字编辑和 Linux 完美的融合提供了命令行.只能假设 ssh 至server进行操作,那么这样的情况就仅仅能使用 vim 了.vim 也是最为强大的通用文本 ...

  2. 怎么样ubuntu 64 11.04 在执行32位程序

    上网一查非常多的信息,头发上的今天ubuntu 64 11.04 在执行32位程序安装ia32-libs包,可执行例如,下面的命令.但提示无法安装 apt-get install ia32-libs ...

  3. 将odbc扩展编译至nodejs程序集中

    1. 下载nodejs https://github.com/joyent/node 2. 下载odbc for nodejs 扩展 https://registry.npmjs.org/odbc/- ...

  4. HDU 1712 ACboy needs your help(包背包)

    HDU 1712 ACboy needs your help(包背包) pid=1712">http://acm.hdu.edu.cn/showproblem.php? pid=171 ...

  5. Down to the TLP: How PCI express devices talk (Part I)

    http://xillybus.com/tutorials/pci-express-tlp-pcie-primer-tutorial-guide-1 Down to the TLP: How PCI ...

  6. android控制控制的显示顺序

    在android中假设首先在xml中静态加入了一个控件,剩下的控件都是通过addView动态加入.那么假设有控件覆盖的情况(比方说使用FrameLayout或者RelativeLayout),先加入得 ...

  7. HDU4893:Wow! Such Sequence!(段树lazy)

    Problem Description Recently, Doge got a funny birthday present from his new friend, Protein Tiger f ...

  8. (札记)Java应用架构设计-模块化模式与OSGi

    本书主要模块化模式的优点.模块化方法与模式.OSGi简单使用等内容.分3大部分: 第一部分介绍了模块化概念.为什么要模块化,以及一些模块化要考虑的东西,如模块粒度,依赖关系,重用性灵活性等. 第二部分 ...

  9. MySQL 架构

    原文:MySQL 架构 MySQL架构和结构分析 官方架构图: MySQL DB 各模块架构图如下: MySQL安装方式 MySQL初始化 简介:什么是事务: 事务: ACID :  事务确保了银行不 ...

  10. 3 sum

    3-sum 标题叙述性说明: Given an array S of n integers, are there elements a, b, c in S such that a + b + c = ...