mrfangzheng

Hope and fear are useless. Be confident, and always be prepared for the worst.
  首页  :: 新随笔  :: 联系 :: 管理

WPF : 如何选用Template, UserControl, CustomControl

Posted on 2009-10-30 10:35  mrfangzheng  阅读(1661)  评论(0编辑  收藏  举报

使用顺序: DataTemplate, UserControl, ControlTemplate, CustomControl

  1. 尽量使用Template. Template分2种: "纯XAML"和"XAML+CodeBehind"
    尽量使用"纯XAML"类型的Template, 纯XAML的Template可以放在任何资源中, 包括没有CodeBehind的ResouceDictionary中.
    方法:
    - 用Command来操作Model
    - 用DataTrigger 响应Model的事件, 设置UI属性
    - 用Trigger 响应控件事件, 设置控件属性
    - 用Binding, Converter实现Model和UI之间的数据转换
  2. DataTemplate用于描述UI控件和模型数据的对应关系, 使用DataTemplate的关键是:1)选择哪种控件 2)控件和模型间的Binding 3)DataTrigger处理模型事件
  3. ControlTemplate用于重新定义UI控件, 少用. 主要用于开发可重用性控件.
  4. UserControl用于描述UI控件的Style以及UI控件之间的合作. 鼠标事件之类应该由UserControl来处理. UserControl只处理UI控件, 不处理模型数据.
    UserControl侧重于控件的组合.
  5. 使用UserControl和DataTemplate之间的区别 :
    如果多个UI控件的交互非常复杂, 则封装在UserControl中. 当UI和Model之间界限比较清楚时, 用DataTemplate.
    UserControl用于视觉表现和用户交互, DataTemplate用于数据和控件之间绑定.
  6. 需要让用户自定义ControlTemplate时, 使用CustomControl.