标签:
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" HorizontalAlignment="Left" Margin="194,85,0,0" VerticalAlignment="Top">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock FontSize="20" Text="{Binding Name}" Margin="15,0,15,0"/>
<TextBlock FontSize="20" Text="{Binding Age}" Margin="15,0,15,0"/>
<TextBlock FontSize="20" Text="{Binding Height}" 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三个数据属性,用于存放和获取人员信息,代码如下所示:
{
//添加Name、Age和Height属性
public string Name { get; set; }
public string Age { get; set; }
public string Height { get; set; }
}
接下来在MainPage.xaml.cs文件的MainPage构造方法中,定义并初始化要显示的数据源列表,然后将其与前台定义的ListView控件建立绑定,代码如下所示:
{
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控件中,并在界面中显示出来。