https://docs.microsoft.com/zh-cn/learn/modules/display-collections-in-xamarin-forms-apps-with-listview/4-dynamically-add-and-remove-listview-items

大多数现代应用程序显示的内容会随着时间变化。 例如,流行的社交媒体应用程序,如 Facebook、Twitter 和 Instagram。 此类应用程序向其用户显示内容列表。 如果用户上传了新照片,则该照片会添加到列表中供所有人查看。 在本单元中,我们将了解如何动态添加和删除 Xamarin.Forms ListView 中的项。

动态修改 ListView 控件
若要动态添加和删除 Xamarin.Forms ListView 控件中的元素,我们需要修改分配给 ItemsSource 属性的数据集合。

以下代码提供了我们正在讨论的一些操作类型示例。 假设 ItemsSource 控件的 ListView 属性设置为 Cookbook.Recipes,第一行添加新项,第二行删除项,第三行替换项。

Cookbook.Recipes.Add(new Recipe { Name = "Mac n Cheese" });Cookbook.Recipes.RemoveAt(0);Cookbook.Recipes[0] = new Recipe { Name = "Golden Heaven Food" }

我们在此处仅讨论添加、删除和替换集合的记录。 我们不会修改集合中已有项的内容。 我们将在本模块的后面部分了解如何做到这一点。

使用 ObservableCollection 类型
前面的代码可能会或可能无法正确工作。 这取决于 Recipes 类型的实现方式。 问题在于 ListView 控件需要在 ItemsSource 集合发生更改时得到通知。

我们需要使用实现 INotifyCollectionChanged 接口的集合。 此接口有一个名为 CollectionChanged 的事件,只要集合更改,就会引发该事件。 ListView 知道此接口,并将自动订阅 CollectionChanged 事件。

标准库包含实现 INotifyCollectionChanged 的 ObservableCollection 类型。 只要我们将这个集合用于数据,当我们更改集合的内容时,ListView 控件就会立即更新。

此代码示例显示了如何使用 ObservableCollection:

public static class Cookbook
{public static ObservableCollection<Recipe> Recipes { get; private set; }static Cookbook(){Recipes = new ObservableCollection<Recipe>();}
}

动态添加和删除 ListView 项相关推荐

  1. JavaScript 高级篇之DOM文档,简单封装及调用、动态添加、删除样式(推荐七)

    前言 学习是有趣的,但有过滤的学习内容就更好,本博主就专门为刚接触javascript客户端编程的朋友提供及分享个人学习经历!建议大家看看:(汤姆大叔的博客) http://www.cnblogs.c ...

  2. ViewPager+Fragment实现TabHost,Fragment动态添加、删除,Tab选项卡跟随滑动

    效果图: 代码功能: (1)用ViewPager+Fragment实现TabHost,ViewPager的每一个Page均是Fragment.ViewPager中的Fragment可以动态添加.删除. ...

  3. 使用js对select动态添加和删除OPTION示例代码

    动态删除select中的所有options.某一项option以及动态添加select中的项option,在IE和FireFox都能测试成功,感兴趣的朋友可以参考下,希望对大家有所帮助 <sel ...

  4. 原生态JS和JQuery版的动态添加、删除表格行

    过了太久,JQuery都生疏了,闲来没事,写着玩玩. 下面HTML代码作用:提交一个表单,将复选框的值提交(复选框的值等于后面的文本框,复选框和文本框处在同一行,可以动态添加和删除). >原生态 ...

  5. html表格中添加修改和删除链接,jQuery实现为table表格动态添加或删除tr功能示例...

    本文实例讲述了jQuery实现为table表格动态添加或删除tr功能.分享给大家供大家参考,具体如下: HTML页面元素如下: 订单合同号 捆包号 品名 规格 材质 重量 业务需求是,从后台获取到订单 ...

  6. 后盾网lavarel视频项目---vue实现动态添加和删除板块

    后盾网lavarel视频项目---vue实现动态添加和删除板块 一.总结 一句话总结: 原理就是:列表时根据vue中的videos变量中的元素来遍历的,初始时videos:[{title:'',pat ...

  7. vue根据索引删除数组中的一个对象_Vue实现动态添加或者删除对象和对象数组的操作方法...

    添加核心代码如下: this.data.push({ type: [{ value: '选项1', label: 'in' }, { value: '选项3', label: 'out' }], va ...

  8. js进阶 9-11 select选项框如何动态添加和删除元素

    js进阶 9-11 select选项框如何动态添加和删除元素 一.总结 一句话总结: 二.js进阶 9-11 select选项框如何动态添加和删除元素 1.案例说明 2.相关知识 Select 下拉列 ...

  9. 如何动态添加修改删除定时任务

    如何动态添加修改删除定时任务 (1)思路说明: (a)首先这里我们需要重新认识一个类ThreadPoolTaskScheduler:线程池任务调度类,能够开启线程池进行任务调度. (b)ThreadP ...

最新文章

  1. 关系管理系统:js代码生成select的出生日期
  2. git(码云):如何把本地代码提交到码云代码管理项目上
  3. PathMatchingResourcePatternResolver通过适配符寻找符合条件的java类
  4. python中DictVectorizer的使用
  5. 甘肃省事业单位公考招聘考试权威复习资料---GIS专业全真模拟题(一)
  6. mysql添加映射模块_iis7.5中让html与shtml一样支持include功能(添加模块映射)
  7. 问题 L: A+B Problem (IV) : Input/Output Practice 山东科技大学OJ C语言
  8. TP5项目lnmp环境500错误
  9. SPSS 26下载与安装
  10. 人工智能自动修复图片,模糊图片秒变高清
  11. hdu4415 Assassin’s Creed (贪心)
  12. 【eBay大赛专访特辑3】华北、中西部赛区人才济济,看他们如何乘风破浪!
  13. python爬虫请求头是什么意思_Pytho爬虫中Requests设置请求头Headers的方法
  14. 电阻电路的等效变化(Ⅰ)
  15. 亚马逊被人差评了怎么办?
  16. 自己的电脑不能连接打印机打印怎么办
  17. python字符串str_python3 字符串str 教程
  18. 001_Whetting Your Appetite_引言
  19. 2021年河南省高考成绩位次查询,2021年河南高考位次查询及一分一段表排名查询...
  20. 无监督-主题模型(TM)/隐语义模型(LFM)(四):LDA(隐狄利克雷分布)【 数据(似然)(多项分布)+先验分布(狄雷分布)-> 后验分布(狄雷分布),后验分布作为下一轮的先验分布】【广泛使用】

热门文章

  1. 2021年上海高考小三门成绩查询,高考小三门怎么算分 上海2021高考小三门
  2. maven设置从本地读_如何在Eclipse中更改Maven本地存储库
  3. mysql事务操作代码_Mysql中事务的使用【mysql】
  4. java使用itext开源包实现pdf文件合并,亲测可用,响应速度快的惊人
  5. 重庆地方税务局报税客户端升级导致的问题
  6. 让你人见人爱的27个原则
  7. arduino接收hmi屏幕_汽车HMI设计中交互设计的发展趋势
  8. python zip函数_相当于Python的zip函数
  9. [短评]企业裁员行为对整个社会的正面意义
  10. 从二进制数据流中构造GDAL可以读取的图像数据