Winform中針對界面的元素進行操作, 所有業務都關聯在當前窗口的后台, 而在此之前, 無奈你是雙擊事件的添加方式、還是后台綁定事件的方式,
你都需要給每個元素一個固定規范的名稱, 然后進行相關的數據操作。這種方式稱之為事件驅動型。
WPF的不同之處:
1. WPF不僅僅在支持原生的Winform舊模式的操作下,升級了一種全新的模式,也是就是MVVM模式, 不再為每個元素添加固定的名稱, 然后通過后台進行事件進行業務代碼編寫。
2. 一套擴展能力超強的UI界面, 與早期的GDI+/GDI不同。WPF是基於DirectX引擎的,支持GPU硬件加速,在不支持硬件加速時也可以使用軟件繪制。
高級別的線程繪制可以提高使用者的體驗。自動識別顯示器分辨率並進行縮放。
3. 有諸多的新功能,諸如: 樣式、觸發器、命令、動畫、模板 。
Winform模式帶來的常見的開發問題:
1.為了滿足winform用戶界面的需求, 所以也自然誕生了很多公司或者個人為其開啟一套經常UI的統一處理的控件, 如市面上常見的有DevExpress 、DotenetBar 等等。
所以自然就暴露出了新的問題, 使用了新的控件、那么自然會有一套新的數據獲取方式、又需要去適應新的整套開發方式、而使用新的控件只是為了滿足winform界面不豐富、或者更加強大的功能。
2.暫且不考慮第三方控件帶來的新的問題、winform本身的開發模式、就存在着天然的缺陷, 舉個例子, 按照常規的方式我們給一個winform控件進行數據綁定操作。
按照事件驅動的模式, 他則是需要根據控件名來獲取我們原始綁定的數據。 【 界面與數據完全耦合, 取數據在綁定之前已經知道數據的結構, 在獲取的數據的時候卻還要回過頭去通過控件來找數據】
數據驅動的理念是什么?
什么是數據驅動UI呢?我們知道傳統的GUI界面都是由windows消息通過事件傳遞給程序,程序根據不同的操作來表達出不同的數據體現在UI界面上,這樣數據在某種程度上來說,
受到很大的限制。 WPF中是數據驅動UI,數據是核心,處於主動的,UI從屬於數據並表達數據,是被動的。WPF數據第一,控件第二。盡管WPF中,數據處以第一, 但是對於UI來說,
WPF中的UI仍然是其出色的一部分。