Xamairn.Forms 用户控件——控件——ListView——ListView数据源
来源:互联网 发布:苹果5s怎么关闭网络 编辑:程序博客网 时间:2024/06/06 03:39
ListView数据源
了解如何使用数据填充ListView。
- PDF用于离线使用
- 下载PDF
- 相关样品:
- 双向绑定
让我们知道你对此的感受
ListView用于显示数据列表。我们将了解如何使用数据填充ListView,以及如何绑定到所选项目。
- 设置ItemsSource - 使用一个简单的列表或数组。
- 数据绑定 - 建立模型和ListView之间的关系。绑定是MVVM模式的理想选择。
的ItemsSource
ListView使用ItemsSource
属性填充数据,该属性可以接受任何实现的集合IEnumerable
。填充的最简单的方式ListView
涉及使用字符串数组:
var listView = new ListView();listView.ItemsSource = new string[]{ "mono", "monodroid", "monotouch", "monorail", "monodevelop", "monotone", "monopoly", "monomodal", "mononucleosis"};//monochrome will not appear in the list because it was added//after the list was populated.listView.ItemsSource.Add("monochrome");
上面的方法将填充ListView
一个字符串列表。默认情况下,ListView
将为每行调用ToString
并显示结果TextCell
。要自定义数据的显示方式,请参阅“ 单元格外观”。
因为ItemsSource
已经发送到一个数组,内容不会随着底层列表或数组的更改而更新。如果您希望ListView自动更新,因为在基础列表中添加,删除和更改项目,则需要使用ObservableCollection
。ObservableCollection
被定义在System.Collections.ObjectModel
和它是一样的List
,除了它可以通知ListView
任何更改:
ObservableCollection<Employees> employeeList = new ObservableCollection<Employess>();listView.ItemsSource = employeeList;//Mr. Mono will be added to the ListView because it uses an ObservableCollectionemployeeList.Add(new Employee(){ DisplayName="Mr. Mono"});
数据绑定
数据绑定是将用户界面对象的属性与某些CLR对象的属性(如ViewModel中的类)绑定的“粘合”。数据绑定是有用的,因为它通过替代大量无聊的样板代码简化了用户界面的开发。
数据绑定的工作原理是保持对象同步,因为绑定值发生变化。每当控件的值发生变化时,不必编写事件处理程序,您就可以在ViewModel中建立绑定和启用绑定。
有关数据绑定的更多信息,请参阅数据绑定基础,这是Xamarin.Forms XAML基础知识文章系列的第四部分。
绑定细胞
单元格(和单元格的子元素)的属性可以绑定到对象的属性ItemsSource
。例如,ListView可以用于呈现具有图像的员工列表。
员工类:
public class Employee{ public string DisplayName {get; set;}}
ObservableCollection<Employee>
被创建并设置为ListView
's ItemsSource
:
ObservableCollection<Employee> employees = new ObservableCollection<Employee>();public EmployeeListPage(){ //defined in XAML to follow EmployeeView.ItemsSource = employees; ...}
列表中填有数据:
public EmployeeListPage(){ ... employees.Add(new Employee{ DisplayName="Rob Finnerty"}); employees.Add(new Employee{ DisplayName="Bill Wrestler"}); employees.Add(new Employee{ DisplayName="Dr. Geri-Beth Hooper"}); employees.Add(new Employee{ DisplayName="Dr. Keith Joyce-Purdy"}); employees.Add(new Employee{ DisplayName="Sheri Spruce"}); employees.Add(new Employee{ DisplayName="Burt Indybrick"});}
以下代码段演示了ListView
绑定到员工列表:
<?xml version="1.0" encoding="utf-8" ?><ContentPage xmlns="http://xamarin.com/schemas/2014/forms"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:constants="clr-namespace:XamarinFormsSample;assembly=XamarinFormsXamlSample"x:Class="XamarinFormsXamlSample.Views.EmployeeListPage"Title="Employee List"> <ListView x:Name="EmployeeView"> <ListView.ItemTemplate> <DataTemplate> <TextCell Text="{Binding DisplayName}" /> </DataTemplate> </ListView.ItemTemplate> </ListView></ContentPage>
请注意,为了简单起见,绑定是在代码中设置的,尽管它可能已被绑定到XAML中。
XAML的前一位定义了一个ContentPage
包含一个ListView
。ListView
通过ItemsSource
属性设置数据源。元素中ItemsSource
定义了每一行的布局ListView.ItemTemplate
。
这是结果:
绑定SelectedItem
通常,您需要绑定到所选项目ListView
,而不是使用事件处理程序来响应更改。要在XAML中执行此操作,请绑定SelectedItem
属性:
<ListView x:Name="listView" SelectedItem="{Binding Source={x:Reference SomeLabel}, Path=Text}"> …</ListView>
假设listView
的ItemsSource
是一个字符串列表,SomeLabel
将其text属性绑定SelectedItem
。
- Xamairn.Forms 用户控件——控件——ListView——ListView数据源
- Xamairn.Forms 用户界面——控件——布局——Native Embedding
- Xamarin.Forms 用户界面——控件——ListView
- 控件——ListView
- winform—ListView控件
- Xamrin.Forms 用户界面——控件——ListView——ListView 交互
- Xamarin.Forms 用户界面——控件——ListView——ListView 性能
- Xamarin.Forms 用户控件——控件—— DataPages
- Android——ListView控件
- android控件——ListView
- Android控件——ListView
- android控件—ListView(1)
- Xamarin.Forms 用户界面——控件——ListView——Cell 外观
- Xamarin.Forms 用户界面——控件——ListView——List外观
- 技术贴1——控件listview
- 常用控件——adapter listview spinner
- android资源控件——ListView
- android学习笔记——ListView控件
- Linux 新增磁盘,重新挂载分区
- JAVA 实现正则表达式代码
- laravel 公共函数
- JAVA单链表反转
- Java的内存回收机制
- Xamairn.Forms 用户控件——控件——ListView——ListView数据源
- NG机器学习week11 Application: Photo OCR
- 最大公约数和最小公倍数问题--分解质因子
- bzoj1023 [SHOI2008]cactus仙人掌图
- Linux里的权限
- Hrbust 2300 下雪啦【字符串Hash】
- Xamarin.Forms 用户界面——控件——ListView——Cell 外观
- C# 应用程序自删除
- NYOJ35