原创 【最佳實踐系列】靈活使用單機應用程序中的數據庫

一、工程背景   假定一個應用程序(App)需要新建、打開和保存項目文件,並且每個項目文件中又包含數據文件的情形,那麼要求在創建或編輯項目的過程中動態的創建數據庫文件,或者已知數據庫結構時在應用程序中包含一個空的數據庫文件,然後在需要時將

原创 【最佳實踐系列】一種WPF應用程序數據驗證模式

輸入數據的驗證經常發生在用戶錄入數據後,在對輸入數據進行處理前對其進行檢驗,確定其是否滿足一定的規則。這裏介紹一種經驗法則,用於頻繁的數據驗證過程。 注:下面的例子用到一個用於表示均勻分佈參數設置信息的類 /// <summar

原创 【最佳實踐系列】基於序列化技術的XML數據源操作模式

假定應用程序的輸入數據來自於一個結構化的XML文件,那麼首先我們要根據需要的數據格式設計類型(class),其中要求類型中的公共屬性能夠被XML序列化,例如Dictionary<T,T>類型就不能直接被序列化而List<T>則能夠。保存數

原创 C# 委託

1、語法基礎 將函數作爲參數傳遞在C及C++中是用函數指針,在Lisp中函數本來就是參數的一種,而在C#中則用到的是委託——Delegate。委託實際上是一種引用類型(引用程序中以後會被調用的一個或一組方法,派生自System.Multi

原创 【最佳實踐系列】一種面向數據的WPF應用框架

如圖所示,這個框架模式的核心是一個全局信息類,假定爲GlobalUse.cs,其中保存有從數據源或保存的項目文件中讀取的數據,其他功能模塊直接在這些數據上進行操作,從而使得數據的呈現和修改都能夠方便地實現。 有些內置的數據類型不能序列化

原创 【最佳實踐系列】WPF多個窗口間消息的實時傳遞與響應

本文提供一種基於全局更改通知屬性的消息傳遞方法,可以在本窗口以及多窗口間實現消息的實時傳遞和響應,具體實現如下步驟所示: 1、定義消息類和全局靜態消息資源 public class Messager : INotifyProper

原创 C#匿名類型及Lambda方法

一、匿名類型產生的背景   C#是一種強類型語言,即每個變量都必須在使用前聲明其數據類型,無論是語言內置的類型還是自定義類型。而我們瞭解在許多其他語言中變量是可以“直接使用的”,即無需聲明,由編譯器決定變量標識符,例如Matlab,J