Data Binding Overview
WPF用data binding来创建UI和数据的关联。其中数据的来源可以是common language runtime objects或者是XML.
wpf中的data binding相对于传统的模型有很多优势:
1. UI的大多数属性(properties)都是支持data binding的
2. binding可以让UI变得更加灵活
3. UI和内部逻辑的清晰分离
以下,我们先讨论data binding的基础概念,然后再看Binding这个类是怎么用的。
什么是data binding?
data binding是建立应用的UI和内部逻辑的关联的过程。也就是一个UI构件会随着跟他绑定的数据的改变而改变。反过来,如果你改变了UI(比如checkbox上打了一个勾,在Textbox输入了一些字符)那么和这个UI绑定的数据也会自动变化。
以下是官方文档里对data binding写的demo,项目的地址在https://code.msdn.microsoft.com/windowsapps/Data-Binding-Demo-82a17c83
这个demo用来显示拍卖商品的列表。他用到data binding实现了以下特性:
1. ListBox的内容与一系列的AuctionItem的对象绑定。AuctionItem类有以下Properties: Description, StartPrice, StartDate, Category, SpecialFeatures等等
2. 这些AuctionItem对象在ListBox中的展示是被写成了模板,因此只显示了description和current price属性。模板的实现是通过DataTemplate。每个对象显示出来的样子也和这个对象的SpecialFeature(一个property)有关,当SpecialFeature取值为Color,则是蓝色边框;取值为Highlight,则是橙色边框,且有一个星星。C#的文档中有详细介绍template的教程。
3. 用户可以通过勾选checkbox来控制