36
DEV312 DEV312 基基 基基 WPF WPF 基基基基基 基基基基基

DEV312 基于 WPF 的数据绑定

  • Upload
    daria

  • View
    126

  • Download
    0

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: DEV312 基于 WPF 的数据绑定

DEV312DEV312基于基于 WPFWPF 的数据绑定的数据绑定

Page 2: DEV312 基于 WPF 的数据绑定

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

Page 3: DEV312 基于 WPF 的数据绑定
Page 4: DEV312 基于 WPF 的数据绑定

三个要点三个要点

对数据的强大支持对数据的强大支持对数据的普遍支持对数据的普遍支持对数据的灵活支持对数据的灵活支持

Page 5: DEV312 基于 WPF 的数据绑定

对数据的强大支持对数据的强大支持

Page 6: DEV312 基于 WPF 的数据绑定

对数据的强大支持对数据的强大支持

单一绑定 单一绑定 (Singular Binding)(Singular Binding)

数据模板 数据模板 (DataTemplate)(DataTemplate)

表绑定 表绑定 (List Binding)(List Binding)

集合视图 集合视图 (CollectionView)(CollectionView)

Page 7: DEV312 基于 WPF 的数据绑定

对数据的强大支持对数据的强大支持

单一绑定 单一绑定 (Singular Binding)(Singular Binding)

数据模板 数据模板 (DataTemplate)(DataTemplate)

表绑定 表绑定 (List Binding)(List Binding)

集合视图 集合视图 (CollectionView)(CollectionView)

Page 8: DEV312 基于 WPF 的数据绑定

单一绑定单一绑定

数据对象数据对象

属性属性

UIUI 对象对象

属性属性

绑定绑定 (Binding)(Binding)

Page 9: DEV312 基于 WPF 的数据绑定

单一绑定单一绑定

Page 10: DEV312 基于 WPF 的数据绑定

对数据的强大支持对数据的强大支持

单一绑定 单一绑定 (Singular Binding)(Singular Binding)

数据模板 数据模板 (DataTemplate)(DataTemplate)

表绑定 表绑定 (List Binding)(List Binding)

集合视图 集合视图 (CollectionView)(CollectionView)

Page 11: DEV312 基于 WPF 的数据绑定

数据模板数据模板定义数据的可视化定义数据的可视化

数据数据模板模板

public class AuctionItempublic class AuctionItem{{ string Imagestring Image {get;set;}{get;set;} int RemaingSecondsint RemaingSeconds

{get;set{get;set;};}}}

Page 12: DEV312 基于 WPF 的数据绑定

数据模板 数据模板 (DataTemplate)(DataTemplate)

GridGrid

ImageImage TextBlockTextBlockBinding Binding Path= Path= ImageImage

Binding Binding Path=RemainingTiPath=RemainingTi

meme

定义任意的元素树定义任意的元素树

Data TemplateData Template

Data ObjectData Object

DataTypeDataType

Page 13: DEV312 基于 WPF 的数据绑定

数据模板数据模板

Page 14: DEV312 基于 WPF 的数据绑定

数据模板 数据模板 (DataTemplate)(DataTemplate)

通过通过 XAMLXAML 定义定义易于修改和提供工具支持易于修改和提供工具支持

Visual Designer for WPFVisual Designer for WPF

Microsoft Expression Interactive DesignerMicrosoft Expression Interactive Designer

使用标准的使用标准的 WPFWPF 元素元素Panels, controls, Panels, controls, 等等 ..

BindingBinding 是联系数据绑定的源是联系数据绑定的源 (Source)(Source) 和对象和对象(Target)(Target) 的桥梁。的桥梁。和控件的模板使用相同的模式和控件的模板使用相同的模式

Page 15: DEV312 基于 WPF 的数据绑定

Visual Designer for WPF Visual Designer for WPF (Cider)(Cider)

Page 16: DEV312 基于 WPF 的数据绑定

Microsoft Expression Microsoft Expression Interactive Designer Interactive Designer (Sparkle)(Sparkle)

Page 17: DEV312 基于 WPF 的数据绑定

对数据的强大支持对数据的强大支持

单一绑定 单一绑定 (Singular Binding)(Singular Binding)

数据模板 数据模板 (DataTemplate)(DataTemplate)

表绑定 表绑定 (List Binding)(List Binding)

集合视图 集合视图 (CollectionView)(CollectionView)

Page 18: DEV312 基于 WPF 的数据绑定

表绑定 表绑定 (List Binding)(List Binding)

AuctionIteAuctionItem m

AuctionIteAuctionItemm

AuctionIteAuctionItemm

AuctionIteAuctionItemm

……

IEnumerableIEnumerable

……

ListBoxListBox

UI Object UI Object 11

UI Object UI Object 22

UI Object UI Object 33

UI Object UI Object 44

ListListBindingBinding

Page 19: DEV312 基于 WPF 的数据绑定

表绑定表绑定

Page 20: DEV312 基于 WPF 的数据绑定

对数据的强大支持对数据的强大支持

单一绑定 单一绑定 (Singular Binding)(Singular Binding)

数据模板 数据模板 (DataTemplate)(DataTemplate)

表绑定 表绑定 (List Binding)(List Binding)

集合视图 集合视图 (CollectionView)(CollectionView)

Page 21: DEV312 基于 WPF 的数据绑定

集合视图 集合视图 (Collection View)(Collection View)

当前项 当前项 (Current Item)(Current Item)

分组 分组 (Group)(Group)

排序 排序 (Sort)(Sort)

过滤 过滤 (Filter)(Filter)

Page 22: DEV312 基于 WPF 的数据绑定

集合视图集合视图

Page 23: DEV312 基于 WPF 的数据绑定

对数据的普遍支持对数据的普遍支持

Page 24: DEV312 基于 WPF 的数据绑定

对数据的普遍支持对数据的普遍支持

DependencyObject (DO)DependencyObject (DO)

DependencyProperty (DP)DependencyProperty (DP)

Page 25: DEV312 基于 WPF 的数据绑定

DependencyObjectDependencyObject

WPFWPF 中所有控件的基类中所有控件的基类还是很多有用的类的基类还是很多有用的类的基类

Transforms (rotate, skew, scale)Transforms (rotate, skew, scale)

Triggers (Event, Data)Triggers (Event, Data)

BrushesBrushes

等等等等提供一组核心的服务提供一组核心的服务

Page 26: DEV312 基于 WPF 的数据绑定

CLRCLR 的属性的属性 (Property)(Property)

public decimal Valuepublic decimal Value{{

get { get { return _value;return _value; } }set { set { _value = value;_value = value; } }

}}

private decimal _value;private decimal _value;

Page 27: DEV312 基于 WPF 的数据绑定

Dependency PropertyDependency Property

public decimal Valuepublic decimal Value{{

get { return (decimal)GetValue(ValueProperty); }get { return (decimal)GetValue(ValueProperty); }set { SetValue(ValueProperty, value); }set { SetValue(ValueProperty, value); }

}}

public static readonly DependencyProperty ValueProperty =public static readonly DependencyProperty ValueProperty =DependencyProperty.Register("Value",DependencyProperty.Register("Value",

typeof(decimal),typeof(decimal),typeof(NumericUpDown),typeof(NumericUpDown),

new PropertyMetadata((decimal)0)new PropertyMetadata((decimal)0)));;

Page 28: DEV312 基于 WPF 的数据绑定

DO/DPDO/DP 提供的服务提供的服务

基本服务 基本服务 (Base Services)(Base Services)存储空间 存储空间 (Storage)(Storage)

缺省值 缺省值 (Default Value)(Default Value)

附加属性 附加属性 (Attached Properties)(Attached Properties)Canvas.Left, Grid.Column, DockPanel.DockCanvas.Left, Grid.Column, DockPanel.Dock

验证 验证 (Validation)(Validation)

值改变通知 值改变通知 (Change Notifications)(Change Notifications)

强制转化 强制转化 (Coercion)(Coercion)

数据绑定 数据绑定 (Binding)(Binding)

框架增加 框架增加 (Framework Adds)(Framework Adds)动画动画 (Animation), (Animation), 继承继承 (Inheritance), (Inheritance), 样式样式(Styling )(Styling )

Page 29: DEV312 基于 WPF 的数据绑定

处处“数据绑定”处处“数据绑定”

Page 30: DEV312 基于 WPF 的数据绑定

对数据的灵活支持对数据的灵活支持

Page 31: DEV312 基于 WPF 的数据绑定

WPFWPF 支持的数据模型支持的数据模型

IBindingList (DataTable, BindingList<T>)IBindingList (DataTable, BindingList<T>)

ICustomTypeDescriptor (DataRowView)ICustomTypeDescriptor (DataRowView)

INotifyPropertyChangedINotifyPropertyChanged

[Property]Changed event[Property]Changed event

任意的任意的 to/fromto/from 转换转换One-to-Many BindingOne-to-Many Binding

异质的异质的 (Heterogeneous)(Heterogeneous) 数据类型数据类型有层次的有层次的 (Hierarchical)(Hierarchical) 数据类型数据类型

Page 32: DEV312 基于 WPF 的数据绑定

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

Page 33: DEV312 基于 WPF 的数据绑定

XMLXML 绑定绑定

WPFWPF 提供对提供对 XMLXML 绑定的本地支持绑定的本地支持XMLDataProviderXMLDataProvider 允许对本地和远程数据的连接允许对本地和远程数据的连接PathPath 模式是模式是 XPathXPath

Page 34: DEV312 基于 WPF 的数据绑定

XMLXML 绑定绑定

Page 35: DEV312 基于 WPF 的数据绑定

回顾三个要点回顾三个要点

对数据的强大支持对数据的强大支持对数据的普遍支持对数据的普遍支持对数据的灵活支持对数据的灵活支持

Page 36: DEV312 基于 WPF 的数据绑定