2009-09-19 49 views
0

我正在構建一個GUI應用程序,它將成爲XML配置文件的前端。實現對象實例模型到PropertyGrid

XML結構定義了一組對象實例。也就是類型名稱和應該在消費應用程序中實例化的屬性值(windows服務)。

因此,有三層:

ConfigurationObject <--> ComponentObjects <--> PropertyGrid 

ConfigurationObject序列化到了窗口服務的正確的XML格式。 ComponentObjects是由Windows服務使用的相同類型。

我遇到的問題是確定保持所有三層同步的最佳方法。

我的第一個實現我將更新單個屬性時,他們被改變。但是這種方法沒有工作得很好,當我需要複雜的對象更新到UI(雖然我相信我知道問題是什麼,現在)

我目前的做法包括利用類型轉換器的ConfigurationObject和效果很好的ComponentObjects之間的轉換直到意識到我目前的邏輯是忽略了BrowseableAttribute

所以,(因爲我轉換爲ConfigurationObject時簡單地遍歷所有的ComponentObject屬性)我花了時間在我目前的做法之前,我想確保我在正確的軌道。有一個更簡單的方法嗎?在這種情況下,我可以使用一些模型/設計模式嗎?

感謝, 卡爾

回答

1

我能想出缺件到我的問題。

我的創建一個TypeDescriptionProviderConfigurationObject此提供用於這些相同的性質的ComponentObjects屬性和ConfigurationObject的表示之間進行映射。

ComponentObjectsTypeConverter S的轉換和從字符串的

真正的關鍵是分配給ConfigurationObject PropertyGrid的,而不是ComponentObjects裝飾。