技术开发 频道

WPF的本质:数据和行为

  【IT168 技术文档】如果自己来做一个UI框架,我们会首先关注哪些方面?我想UI框架主要处理的一定包括两个主要层次的内容,一个是数据展现,另一个就是数据操作,所以UI框架必须能够接收各种不同的数据并通过UI界面展现出来,然后可以通过控件行为来操作这些数据,也就是UI框架的数据(Data)和行为(Behavior)。

  本篇从总体上讲解一下WPF如何处理和操作Data,看完之后大家应该对WPF框架如何把数据转变为展现界面有初步的认识,这也是WPF的核心设计之一。

  数据(Data)

  以前的UI框架的控件对控件数据类型都有规定,按钮上显示的是文本或者加上一个图片,下拉框显示的都是字符串或者带上一个object类型属性的作为保存对象引用用。而WPF则不同,它缺省的数据类型为object,这就允许控件能够操作任意类型的数据,这也是它灵活和强大的地方之一。

  数据类型

  ·原始数据:字符串、布尔、整形等

  ·列表数据:数组、列表等,集合中的内容可以是相同类型或者不同类型的数据

  ·层级数据:树、列表的列表或者图等,具有层级关系的数据

  ·组合数据:包含以上多种数据的数据,如用户联系方式包括电话、地址1、地址2、手机号等

  但是如果是object类型,那WPF如何知道具体该如何显示这些数据呢?这就要通过Templates、Presenters、Binding and Converters、Layout和Styles了。

  模板(Templates)

  ·控件模板(control template):控件模板定义一个控件的外观,这个控件主要和UI相关,一般也不和Data有关。

  ·数据模板(data template):数据模板负责定制任何一个.Net对象的外观,这对于非UIElement控件非常重要,非UIElement控件的默认模板仅仅是一个TextBlock,其中包含了一个由ToString方法反会的字符串。

  大家可以通过工具ShowMeTheTemplate 来查看一下现有控件的默认模板。

0
相关文章