1 / 36

DEV312 基于 WPF 的数据绑定

DEV312 基于 WPF 的数据绑定. 最大多数的应用程序都是基于数据的程序. 三个要点. 对数据的强大支持 对数据的普遍支持 对数据的灵活支持. 对数据的强大支持. 对数据的强大支持. 单一绑定 (Singular Binding) 数据模板 (DataTemplate) 表绑定 (List Binding) 集合视图 (CollectionView). 对数据的强大支持. 单一绑定 (Singular Binding) 数据模板 (DataTemplate) 表绑定 (List Binding)

daria
Download Presentation

DEV312 基于 WPF 的数据绑定

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DEV312基于WPF的数据绑定

  2. 最大多数的应用程序都是基于数据的程序

  3. 三个要点 • 对数据的强大支持 • 对数据的普遍支持 • 对数据的灵活支持

  4. 对数据的强大支持

  5. 对数据的强大支持 • 单一绑定 (Singular Binding) • 数据模板 (DataTemplate) • 表绑定 (List Binding) • 集合视图 (CollectionView)

  6. 对数据的强大支持 • 单一绑定 (Singular Binding) • 数据模板 (DataTemplate) • 表绑定 (List Binding) • 集合视图 (CollectionView)

  7. 单一绑定 UI对象 数据对象 绑定(Binding) 属性 属性

  8. 单一绑定

  9. 对数据的强大支持 • 单一绑定 (Singular Binding) • 数据模板 (DataTemplate) • 表绑定 (List Binding) • 集合视图 (CollectionView)

  10. 数据模板定义数据的可视化 public class AuctionItem { string Image {get;set;} int RemaingSeconds {get;set;} } 数据模板

  11. 数据模板 (DataTemplate) DataType Data Template Data Object Grid Image TextBlock Binding Path= Image Binding Path=RemainingTime 定义任意的元素树

  12. 数据模板

  13. 数据模板 (DataTemplate) • 通过XAML定义 • 易于修改和提供工具支持 • Visual Designer for WPF • Microsoft Expression Interactive Designer • 使用标准的WPF元素 • Panels, controls, 等. • Binding是联系数据绑定的源(Source)和对象(Target)的桥梁。 • 和控件的模板使用相同的模式

  14. Visual Designer for WPF (Cider)

  15. Microsoft Expression Interactive Designer (Sparkle)

  16. 对数据的强大支持 • 单一绑定 (Singular Binding) • 数据模板 (DataTemplate) • 表绑定 (List Binding) • 集合视图 (CollectionView)

  17. 表绑定 (List Binding) AuctionItem UI Object 1 List Binding AuctionItem UI Object 2 AuctionItem UI Object 3 AuctionItem UI Object 4 … … IEnumerable ListBox

  18. 表绑定

  19. 对数据的强大支持 • 单一绑定 (Singular Binding) • 数据模板 (DataTemplate) • 表绑定 (List Binding) • 集合视图 (CollectionView)

  20. 集合视图 (Collection View) • 当前项 (Current Item) • 分组 (Group) • 排序 (Sort) • 过滤 (Filter)

  21. 集合视图

  22. 对数据的普遍支持

  23. 对数据的普遍支持 • DependencyObject (DO) • DependencyProperty (DP)

  24. DependencyObject • WPF中所有控件的基类 • 还是很多有用的类的基类 • Transforms (rotate, skew, scale) • Triggers (Event, Data) • Brushes • 等等 • 提供一组核心的服务

  25. CLR的属性(Property) public decimal Value { get { return _value; } set { _value = value; } } private decimal _value;

  26. Dependency Property public decimal Value { get { return (decimal)GetValue(ValueProperty); } set { SetValue(ValueProperty, value); } } public static readonly DependencyProperty ValueProperty = DependencyProperty.Register("Value", typeof(decimal), typeof(NumericUpDown), new PropertyMetadata((decimal)0) );

  27. DO/DP提供的服务 • 基本服务 (Base Services) • 存储空间 (Storage) • 缺省值 (Default Value) • 附加属性 (Attached Properties) • Canvas.Left, Grid.Column, DockPanel.Dock • 验证 (Validation) • 值改变通知 (Change Notifications) • 强制转化 (Coercion) • 数据绑定 (Binding) • 框架增加 (Framework Adds) • 动画(Animation), 继承(Inheritance), 样式(Styling )

  28. 处处“数据绑定”

  29. 对数据的灵活支持

  30. WPF支持的数据模型 • IBindingList (DataTable, BindingList<T>) • ICustomTypeDescriptor (DataRowView) • INotifyPropertyChanged • [Property]Changed event • 任意的to/from转换 • One-to-Many Binding • 异质的(Heterogeneous) 数据类型 • 有层次的(Hierarchical)数据类型

  31. 有层次的(Hierarchical)数据绑定

  32. XML绑定 • WPF提供对XML绑定的本地支持 • XMLDataProvider允许对本地和远程数据的连接 • Path模式是XPath

  33. XML绑定

  34. 回顾三个要点 • 对数据的强大支持 • 对数据的普遍支持 • 对数据的灵活支持

More Related