2010-05-07 82 views
0

尋找創建應用程序文件的指導原則。例如,我有一個將用戶輸入存儲到文件(Textbox,DataGrid,ListBox等)的應用程序。我正在尋找WPF-C#實現。應用程序文件(真實世界示例)

我想有以下幾點:

  1. 如果用戶編輯一個任何形式(文本框等)的星號顯示在窗口的標題。
  2. 當窗口關閉並且星號仍然存在時,會出現一個提示「您是否想保存更改」。如果再保存星號消失。

真正的應用程序使用什麼來創建他們的應用程序文件? (注:我不是在尋找數據庫保存或SQL)

我只是尋找提示和指導。謝謝。

回答

0

使用IsDirty模式,這是您在TextChanged事件中將每個字段翻轉爲true的布爾屬性的位置。這可以用來確定何時顯示星號。他們點擊保存後,清除每個字段的IsDirty屬性。

綁定表單一類對象,表示要保存的數據,序列化對象上保存文件。

1

我過去接觸過這種方法的一種方法是隻設置一個設置/應用程序對象。

使用表單級別變量來確定是否發生了某些變化。

如果已經存在,則提示用戶。

如果他們單擊是,然後序列化您的設置/應用程序對象。如果您希望它是人類可讀/可編輯的,那麼使用Xml序列化程序,如果您不關心它,請使用二進制序列化程序。

0

實現您的目標有很多選擇,最常見的解決方案將包括序列化您的類並將它們存儲到磁盤或將您的類包含的數據導出到常規文本文檔(如CSV)中。

如果你想要像CSV類型的可用文件的文件,我會建議看看FileHelpers。使用數據庫記住的另一件事與將文件存儲到磁盤相同。這就是數據庫的工作原理(除非它在內存數據庫中),它只是一種不同類型的文件。

0

標記一個標記以通知已對文本框執行了更改。更好的是,自定義您的文本框,並將標誌設置爲在文本框文本更改時內部設置的屬性。

您可以通過幾種方式來完成。其中一些是 -

  1. Application.Idle事件處理程序 - 檢查標誌。如果髒/真,將*附加到表單標題的標題。您可能想要在所有受監視的文本框上使用某些模式來執行此操作。
  2. 設計一個課程專門完成這項任務並跟蹤它。

還有其他的方法。當我記得他們時,我會編輯答案。