ListView控件

ListView控件的常用方式是与后台数据进行绑定,并将所绑定的数据内容与前端界面布局相结合,按照特定的顺序将数据集合以列表形式展示在界面当中,如电子邮件列表或搜索结果列表等。

在XAML文件中,ListView控件的用法如下所示:

<ListView.../>

-或-

<ListView...>

<!--添加一个或多个组件-->

</ListView>

下面介绍一下ListView控件的常用属性:

  • Header属性,获取或设置ListView控件的标题内容。
  • Items属性,获取ListView控件中列表项的集合。
  • ItemTemplate属性,获取或设置数据模版用于显示每个列表项。
  • IsItemClickEnabled属性,获取或设置在列表中的列表项是否能够响应ItemClick事件。如果属性值为True,表示能够响应ItemClick事件,如果属性值为False则不能响应ItemClick事件。
  • SelectedItem属性,获取或设置列表中的选中项。
  • ItemsSource属性,用于为ListView控件提供绑定数据源。

介绍完常用属性后,接着来看一下ListView控件的常用事件:

  • ItemClick事件,当IsItemClickEnabled属性为True时,单击列表中的列表项时会触发ItemClick事件。
  • SelectionChanged事件,当前列表中的选中项发生改变时触发。SelectionChanged事件与ItemClick事件不能同时被触发。

接下来使用ListView控件设计一个显示人员信息的列表,其中包括姓名,年龄和身高属性,用于演示ListView控件的用法。

新建一个名为"ListViewDemo"的Windows应用商店的空白应用程序项目,在MainPage.xaml文件的Grid元素中添加如下代码。

<ListView Header=" 姓名
年龄
身高" FontSize="25" Name="PersonalInformation" HorizontalAlignment="Left" Margin="194,85,0,0" VerticalAlignment="Top" Width="500" Height="500">

<ListView.ItemTemplate>

<DataTemplate>

<StackPanel Orientation="Horizontal">

<TextBlock FontSize="20" Text="{Binding Name}" Width="60" Margin="15,0,15,0"/>

<TextBlock FontSize="20" Text="{Binding Age}" Width="40" Margin="15,0,15,0"/>

<TextBlock FontSize="20" Text="{Binding Height}" Width="40" Margin="15,0,15,10"/>

</StackPanel>

</DataTemplate>

</ListView.ItemTemplate>

</ListView>

在上面的代码中添加了一个ListView控件,设置其Header属性值为"姓名 年龄 身高",用于显示列表的标题。在ListView控件内使用ListView.ItemTemplate元素创建列表项模板,并在此元素内添加DataTemplate元素用于定义数据模板的样式,在DataTemplate元素中添加一个StackPanel元素,并设置其Orientation属性值为Horizontal,表示对其中的子元素采用水平布局,在StackPanel元素中添加用于显示姓名、年龄及身高的三个TextBlock文本块。设置三个文本块的Text属性分别绑定数据源的Name、Age和Height属性,关于数据绑定的相关知识将会在第6章详细讲解。

为了描述应用中用到的人员信息,首先在MainPage.xaml.cs文件的ListViewDemo命名空间下定义一个数据类Person,并为其定义Name、Age和Height三个数据属性,用于存放和获取人员信息,代码如下所示:

public class Person

{

//添加Name、Age和Height属性

public string Name { get; set; }

public string Age { get; set; }

public string Height { get; set; }

}

接下来在MainPage.xaml.cs文件的MainPage构造方法中,定义并初始化要显示的数据源列表,然后将其与前台定义的ListView控件建立绑定,代码如下所示:

public MainPage()

{

this.InitializeComponent();

List<Person> listItems = new List<Person>(){

new Person() { Name = "杰克", Age= "22", Height= "170" },

new Person() { Name = "迈克", Age= "22", Height= "165" },

new Person() { Name = "大卫", Age= "22", Height= "175" }

};

PersonalInformation.ItemsSource = listItems;

}

在上面的代码中,实例化了一个List<Person>类型的对象listItems,并向listItems对象中添加三个包含人员信息的Person类对象,然后将listItems对象赋值给PersonalInformation的ItemsSource属性,这样就将人员信息添加到了ListView控件中,并在界面中显示出来。

运行程序,在界面中将显示一个人员信息列表,并在其中使用姓名、年龄和身高对数据进行排列,列表中所显示的数据正是前面讲到在后台代码中定义的三条人员信息数据。效果如图4-34所示。

图4-34 使用ListView控件绑定数据源

除此之外,在Windows应用商店应用的常用控件中还提供了GridView控件,但由于GridView控件和ListView控件在功能上非常相似,所以在本节中将不对GridView控件进行介绍,有兴趣的读者可以自学GridView控件的使用方法,并对比GridView和ListView两者之间的差异。

Win10系列:C#应用控件基础21的更多相关文章

  1. Win10系列:JavaScript 控件的使用

    向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...

  2. WPF从我炫系列4---装饰控件的用法

    这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...

  3. WPF 模仿 UltraEdit 文件查看器系列一 用户控件

    WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...

  4. C#控件系列--文本类控件

    C#控件系列--文本类控件         文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能         Label用来 ...

  5. 重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree

    原文:重新想象 Windows 8 Store Apps (17) - 控件基础: Measure, Arrange, GeneralTransform, VisualTree [源码下载] 重新想象 ...

  6. 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试

    原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...

  7. WPF编游戏系列 之四 用户控件

    原文:WPF编游戏系列 之四 用户控件        在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...

  8. Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem

    Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...

  9. Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid、TGrid

    Delphi XE2 之 FireMonkey 入门(43) - 控件基础: TStringGrid.TGrid TStringGrid.TGrid 都是从 TCustomGrid 继承; 区别有:1 ...

随机推荐

  1. 灵雀云率先成为 Linux 基金会/CNCF官方认证培训合作伙伴

    近日,灵雀云Alauda成为Linux基金会/CNCF授权培训伙伴项目( Linux Foundation Authorized Training Partner Program,以下简称ATP)在国 ...

  2. 如何导出不带.svn的文件夹项目

    实际工作中有需要导出项目,却含有大量的.svn文件夹,有以下几种方式导出: 一.TortoiseSVN导出 项目文件夹,右键->TortoiseSVN->导出(Export),勾选“导出无 ...

  3. 即时通讯(III)

    即时通讯的开源库 目前及时通讯可以使用环信.柔云.腾讯云,这些都是基于TCP连接的,UI也是高度定制的,而且它们的技术也是比较成熟的. XMPP比较早,是开源的,但是坑也比较多.传输的数据是XML,造 ...

  4. 时间序列预测——Tensorflow.Keras.LSTM

    1.测试数据下载 https://datamarket.com/data/set/22w6/portland-oregon-average-monthly-bus-ridership-100-janu ...

  5. function的toString方法

    javascript的创建多行字符串的除了平时常见的”“+ 反斜杠\ 还有ES6的` ` 在js51上发现一个很有意思的方法 function heredoc(fn) { return fn.toSt ...

  6. ASP.NET Core SignalR

    ASP.NET Core SignalR 是微软开发的一套基于ASP.NET Core的与Web进行实时交互的类库,它使我们的应用能够实时的把数据推送给Web客户端. 功能 自动管理连接 允许同时广播 ...

  7. java 43 接口

  8. flutter_webview_plugin 无法加载网页的异常处理

    Flutter 本身并未集成webview,所以当需要使用webview 的时候,使用flutter_webview_plugin插件,也就是使用的原生webview组件, flutter_webvi ...

  9. 设计模式理解(九)结构型——外观(Facade)

    等了好久,终于想起来开写了,这次写的是外观模式,记得大学时弄课程设计,外观模式搞得我比较混乱,因为单词不认识,后来觉得有点蛋疼,感觉是一坨混乱的东西然后加个壳再弄几个外部调用的接口而已.个人认为,Fa ...

  10. opencv学习之路(24)、轮廓查找与绘制(三)——凸包

    一.简介 二.绘制点集的凸包 #include<opencv2/opencv.hpp> using namespace cv; void main() { //---绘制点集的凸包 Mat ...