有人不喜欢WPF人为WPF是一种落后的技术,毕竟WPF已经是一种拥有十多年历史的古老技术了。
但是,我觉得WPF技术并不老,在他所处的那个时代,WPF无疑是一种十分超前的技术。直到现在,WPF与他的后继者UWP依然算是一种先进的界面类库。
WPF的数据绑定
WPF是一种数据驱动的界面技术,不同于传统的以控件为核心的界面类库,WPF以数据呈现为中心。我的理解:WPF界面操作的核心并不是控件的操作,而是对于数据的操作。WPF的核心基础是数据绑定,当界面呈现于独立于界面的数据绑定在一起之后,我们只需要操作后台数据,前端界面上的信息就会随之更新。
很多界面类库中都有类似的设计。例如Java Swing类库中的JListModel,Android中的ViewPager,它们独立出一个模型的概念,模型的数据更新之后,会反应到界面呈现之上。但是他们的设计都不算彻底,WPF中可以绑定任何数据类型就算是复杂的item控件也只需要一个list集合就能搞定。如同WPF这么彻底的在底层重构,完全的支持数据绑定的类库,仅此而已。WPF中的数据绑定已经进入了一种疯魔的地步,任何细节都希望能够利用数据绑定来进行处理。
- 资源Resource
- 命令Command
- 样式Style
- 元素Element
- 触发器Tigger
- 模板template
WPF的数据绑定简直丧心病狂,我只简单的介绍这些比较基础的问题,更详细信息各位可以去看参看书。
资源绑定
任何元素都可以绑定资源,资源是一种可以复用的元素,在不同的元素中共享同一种资源能够有效的降低编程量,提高工作效率。
在window中绑定资源
<Window.Resources>
<DataTemplate x:Key="BranchItemTemplate">
<Grid Height="Auto" Width=