博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UWP入门(十二)--数据绑定用法
阅读量:6988 次
发布时间:2019-06-27

本文共 3169 字,大约阅读时间需要 10 分钟。

原文:

主要几个元素:

  • Template
  • DataTemplate
  • ItemSource

数据绑定是一个数据提取的方法,能使数据和UI上的控件紧密相连,下面的Demo是这样的:

有许多书的集合,书 类中有图片、标题、作者和ID,把它成现在GridView 控件上,每次点击GridView 的时候动态显示书本信息

效果图:

这里写图片描述

原理图:

这里写图片描述

1. Template

为GridView 创建一个Template,决定每个独立的图书对象如何呈现在屏幕上

2. DataTemplate

在这里面我们可以实现 具体的如何将书呈现在屏幕上,Grid、StackPanel 等控件

3. ItemSource 告知绑定的是什么

//就是这句话ItemsSource="{x:Bind Books}"

4. 告知 DataTemplate 它们使用的数据类型

//就是这一句话 x:DataType="data:Book"

为了让它生效,得在最上面加上命名空间

//Book类所在的地方xmlns:data="using:xBindDataExample.Models"

完整的写法

5. 代码

5.1 Book

public class Book    {        public int BookId { get; set; }        public string Title { get; set; }        public string Author { get; set; }        public string CoverImage { get; set; }    }    public class BookManager    {        public static List
GetBooks() { var books = new List
(); books.Add(new Book { BookId = 1, Title = "Vulpate", Author = "Futurum", CoverImage="Assets/1.png" }); books.Add(new Book { BookId = 2, Title = "Mazim", Author = "Sequiter Que", CoverImage = "Assets/2.png" }); books.Add(new Book { BookId = 3, Title = "Elit", Author = "Tempor", CoverImage = "Assets/3.png" }); books.Add(new Book { BookId = 4, Title = "Etiam", Author = "Option", CoverImage = "Assets/4.png" }); books.Add(new Book { BookId = 5, Title = "Feugait Eros Libex", Author = "Accumsan", CoverImage = "Assets/5.png" }); books.Add(new Book { BookId = 6, Title = "Nonummy Erat", Author = "Legunt Xaepius", CoverImage = "Assets/6.png" }); books.Add(new Book { BookId = 7, Title = "Nostrud", Author = "Eleifend", CoverImage = "Assets/7.png" }); books.Add(new Book { BookId = 8, Title = "Per Modo", Author = "Vero Tation", CoverImage = "Assets/8.png" }); books.Add(new Book { BookId = 9, Title = "Suscipit Ad", Author = "Jack Tibbles", CoverImage = "Assets/9.png" }); books.Add(new Book { BookId = 10, Title = "Decima", Author = "Tuffy Tibbles", CoverImage = "Assets/10.png" }); books.Add(new Book { BookId = 11, Title = "Erat", Author = "Volupat", CoverImage = "Assets/11.png" }); books.Add(new Book { BookId = 12, Title = "Consequat", Author = "Est Possim", CoverImage = "Assets/12.png" }); books.Add(new Book { BookId = 13, Title = "Aliquip", Author = "Magna", CoverImage = "Assets/13.png" }); return books; } }

5.2 MainPage.xaml.cs

public sealed partial class MainPage : Page    {        private List
Books; public MainPage() { this.InitializeComponent(); Books = BookManager.GetBooks(); } private void GridView_ItemClick(object sender, ItemClickEventArgs e) { var book = (Book)e.ClickedItem; ResultTextBlock.Text = "You selected " + book.Title; } }

5.3 MainPage.xaml

你可能感兴趣的文章
《草根自媒体达人运营实战》一一第2章 自媒体人必备品质
查看>>
两年没人领,Android 漏洞最高悬赏从 5 万涨到 20 万
查看>>
《SolidWorks 2016中文版完全自学手册)》——2.4 尺寸标注
查看>>
《沟通的技术——让交流、会议与演讲更有效》一2.3 何时询问为什么
查看>>
HBase 事务支持 Omid
查看>>
《程序员的呐喊》一一1.3 作者手记:名词王国里的执行
查看>>
微软开始为厂商提供 SQL Server 2014 OTM
查看>>
页面中iframe中嵌入一个跨域的页面,让这个页面按照嵌入的页面宽高大小显示的方式;iframe嵌套的页面不可以编辑的问题解决方案...
查看>>
维护 VS Code 开源项目背后的那些事情
查看>>
亿级用户平台的大数据实践
查看>>
《IPv6精髓(第2版)》——3.5 全局路由前缀
查看>>
Parse SDK:里面到底有什么宝贝?
查看>>
《Java遗传算法编程》—— 2.8 交叉实现
查看>>
《实用软件架构:从系统环境到软件部署 》——导读
查看>>
机器学习领域的几种主要学习方式
查看>>
数据库存储时间的时区问题
查看>>
《Python Cookbook(第2版)中文版》——1.16 替换字符串中的子串
查看>>
《Python Cookbook(第2版)中文版》——1.15 扩展和压缩制表符
查看>>
使用DNSCrypt来加密您与OpenDNS之间的通信
查看>>
支付宝体验设计精髓
查看>>