关于数据类型,有原子类型,列表类型,字典类型等等,而wpf对应控件有contentControl,itemsControl,headerItemsControl等。
控件和类型一一对应,控件和类型之间的交换则通过Binding,中间如果类型和控件需要转换可以通过Converter,交换方向则决定了Binding的mode(OneWay,TwoWay...),数据校验则通过ValidationRule等。
对于contentControl,不仅要呈现其数据,而且还需要定义如何呈现, 这时就需要style和controlTemplate。
对于itemsControl和headerItemsControl,其内部(itemTemplate)还是由contentControl组成,即由dataTemplate来实现类型和数据的转换。每个item通过itemsContainer来定义统一的外观。对于itemsControl和headerItemsControl本身的结构则同样通过controlTemplate来定义。
binding通过更改通知INotifyPropertyChanged来实现数据和类型的交换,在wpf中控件本身都是从DependencyObject继承而来,这个类提供了整个wpf的基础。
对于上述各种控件来说,还需要布局,这时就需要panel。panel决定了子控件在其内部如何布局,而子控件通过panel的各种attachedProperty来指定(比如Grid.Row, Canvas.LeftTop等等)
界面中的元素必然是和用户进行交互,这时就需要事件机制。wpf中有RoutedEvent和AttachedRoutedEvent,所谓routedEvent,有元素根部到当前触发事件的元素(管道事件),也有从当前元素上溯到根元素(冒泡事件)等。wpf中的管道事件基本上以Preview作为前缀(比如:ProviewMouseLeftButtonDown)。
从上面可以看出MVVM模式是专为wpf量身定做的三层架构,我们只要定义好自己的业务数据结构,根据数据结构选择合理的控件,通过binding来实现。

WPF基本概念入门的更多相关文章

  1. WPF MVVM从入门到精通8:数据验证

    原文:WPF MVVM从入门到精通8:数据验证 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 WPF M ...

  2. WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定

    原文:WPF MVVM从入门到精通6:RadioButton等一对多控件的绑定   WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM ...

  3. WPF MVVM从入门到精通7:关闭窗口和打开新窗口

    原文:WPF MVVM从入门到精通7:关闭窗口和打开新窗口 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 ...

  4. WPF MVVM从入门到精通5:PasswordBox的绑定

    原文:WPF MVVM从入门到精通5:PasswordBox的绑定   WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通 ...

  5. WPF MVVM从入门到精通3:数据绑定

    原文:WPF MVVM从入门到精通3:数据绑定   WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 WPF ...

  6. WPF MVVM从入门到精通4:命令和事件

    原文:WPF MVVM从入门到精通4:命令和事件   WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 WP ...

  7. WPF MVVM从入门到精通2:实现一个登录窗口

    原文:WPF MVVM从入门到精通2:实现一个登录窗口   WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 ...

  8. WPF MVVM从入门到精通1:MVVM模式简介

    原文:WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通1:MVVM模式简介 WPF MVVM从入门到精通2:实现一个登录窗口 WPF MVVM从入门到精通3:数据绑定 W ...

  9. 【转】kafka概念入门[一]

    转载的,原文:http://www.cnblogs.com/intsmaze/p/6386616.html ---------------------------------------------- ...

随机推荐

  1. 一个可以查询CSS属性兼容性的网站。

    平时遇到CSS属性是不是道理具体兼容哪些网站,就可以直接上这个网站查询啦.http://www.caniuse.com/ 这个是网站地址.  例如查询 inline-block属性兼容性 就可以看到 ...

  2. jQuery消息提示框插件Tipso

    在线演示 本地下载

  3. 从引物序列出发查找pcr产物的内容和在基因组上的位置

    1.利用primer_blast工具,找出这对引物序列在基因组上的位置: 结果大概会像这样: 2.这些结果都是根据hg38基因组来定位的,转换成hg19: 利用UCSCde hgLiftover 在线 ...

  4. 算法总结之 在单链表和双链表中删除倒数第k个节点

    分别实现两个函数,一个可以删除单链表中倒数第k个节点,另一个可以删除双链表中倒数第k个节点 思路: 如果链表为空,或者k<1 参数无效 除此之外 让链表从头开始走到尾,每移动一步,就让k的值减1 ...

  5. Hadoop学习1(初识hadoop)

    Hadoop生态系统的特点 1)源代码开源 2)社区活跃,参与者多 3)涉及分布式存储和计算的各方面 4)已得到企业界的验证 Hadoop构成 1) 分布式文件系统HDFS(Hadoop Distri ...

  6. HBase协处理器的使用(添加Solr二级索引)

    给HBase添加一二级索引,HBase协处理器结合solr 代码如下 package com.hbase.coprocessor; import java.io.IOException; import ...

  7. windows编译hadoop 2.x Hadoop-eclipse-plugin插件

    本文转载至:http://blog.csdn.net/congcong68/article/details/42098391 一.简介 Hadoop2.x之后没有Eclipse插件工具,我们就不能在E ...

  8. UOJ12 猜数

    这一天,小Y.小D.小C正在愉快地玩耍. 小Y是个数学家,他一拍脑袋冒出了一个神奇的完全平方数 nn. 小D是个机灵鬼,很快从小Y嘴里套出了 nn 的值.然后在脑内把 nn 写成了 a×ba×b的形式 ...

  9. 爬虫之MongoDB的图片

    聚合:

  10. 医院Android项目总结

    Eclipse ADT 配置AVD 1.layout布局:xml 如ck_report.xml     <Text view ...android:id="ck"> & ...