WPF和WinForm的區別, 數據驅動與事件驅動的優勢對比


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仍然是其出色的一部分。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM