• WPF基本概念入门


    关于数据类型,有原子类型,列表类型,字典类型等等,而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来实现。
  • 相关阅读:
    上传图片到PHP服务器
    关于对象、数字、地理位置使用上需要注意的地方
    apiCloud app调用浏览器打开网页的方法
    APICloud开发小技巧(一)
    JavaScript数组操作函数
    超实用的JavaScript代码段
    JSESSIONID的简单说明
    数据库锁表及阻塞的原因和解决办法
    Spring详解------事务管理
    HttpServletrequest 与HttpServletResponse总结
  • 原文地址:https://www.cnblogs.com/muzizongheng/p/3423498.html
Copyright © 2020-2023  润新知