2011-02-22 70 views
0

我將着手將我們的舊版應用程序之一從VB6轉換爲WPF。一年多以前,我花了相當多的時間將中間層的VB6組件(全部在組件服務中)轉換爲WCF。當時,我寫了所有的方法來返回ADO.NET數據集。它工作正常,並且編寫一個簡單的WinForms應用程序,我能夠成功地將一些數據拉回並保存回去。而且我還沒有碰過幾個月的WCF服務。我使用VS 2008編寫了WCF服務。WPF可以輕鬆使用ADO.NET數據集嗎?

我在2010年一直忙於其他職責和其他緊急項目,所以這個轉換項目一直被擱置到現在。其中一個項目是開發一個簡單的WPF應用程序來學習如何編寫WPF應用程序。我們的前臺員工正在使用這個簡單的WPF應用程序。對於這個主要的轉換應用程序,我將使用VS 2010,但我知道WCF 3.5和WPF 4.0將一起工作,這不是問題。但是,困擾我的是,所有的WCF方法都返回ADO.NET數據集。在學習WPF和開發前臺應用程序時,我開發了反映SQL Server數據庫中數據的類,以便我的類可以實現INotifyPropertyChanged接口。那麼,我的WCF類肯定不會實現INotifyPropertyChanged接口。現在我有機會從高層次看待這件事,我擔心我已經基本上在自己的腳下開槍了(嘿,我是無知的,不知道更好)。那麼,我寫的任何WPF應用程序對我的WCF服務返回的ADO.NET數據集都無法理想地工作嗎?


回答

1

我假設來自這些ADO.NET數據集的數據將被設置爲一個或多個WPF控件的源。在這種情況下,如果控制器可以跟蹤數據中的變化而無需執行任何操作,那將非常好。由於我不知道任何具體的細節,所以我不能特別說什麼,儘管我確實有一些可能有所幫助的一般性建議。

INotifyPropertyChanged是一個方便的方法,可以避免編寫大量的樣板代碼。當然,如果你想擁有這個方法的所有功能,你可以添加方法到你的項目中,以跟蹤數據的變化並適當地更新WPF控件。如果只有幾種方法可以改變數據,那麼這不是一項非常艱鉅的任務。

另一方面,您可以爲實現INotifyPropertyChanged方法的ADO.NET數據集創建包裝類。這基本上歸結爲實現從以前的想法相同的代碼,但它可以看起來更好,並創建一個更乾淨的代碼庫。