对于基于XAML的应用程序来说,数据绑定是一个及其重要的概念。数据绑定把数据从.NET对象传递给UI,或从UI传递给.NET对象。简单的对象可以绑定到UI元素、对象列表和XAML元素上。在数据绑定中,目标可以是XAML元素的任意依赖属性,CLR对象的每个属性都可以是绑定源。因为XAML元素也提供了.NET属性,所以每个XAML元素也可以用作绑定源。下图显示了绑定源和绑定目标之间的连接。绑定定义了该连接。
Binding对象支持源与目标之间的几种绑定模式。绑定可以是单向的,即从源信息指向目标,但如果用户在用户界面上修改了该信息,则源不会更新。要更新源,需要双向绑定。
下表列出了绑定模式及其要求。
注意:
UWP支持两种绑定类型:使用Binding标记扩展的传统绑定,以及使用x:Bind标记扩展的新编译绑定。请注意,绑定模式的默认值在这些绑定类型之间存在差异,因此最好总是指定绑定模式。本节主要关注新的编译绑定。
除了绑定模式之外,数据绑定还涉及许多方面。本节详细介绍与简单的.NET对象和列表的绑定。通过更改通知,可以使用绑定对象中的更改更新UI。本节也将论述如何动态地选择数据模版。
下面从DataBindingSamples示例应用程序开始。该应用程序显示图书列表,并允许用户选择一本书,来查看图书细节。
1. 用INotifyPropertyChanged更改通知