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來實現。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章