2011-09-07 80 views
0

我正在製作一個UI,用戶可以在其中添加和存儲指向他們最喜歡的Youtube視頻的鏈接。非常類似於瀏覽器中的收藏夾文件夾,但僅適用於Youtube視頻。使用XML和Treeview的分層數據

我想在一個TreeView顯示的鏈接,使他們能夠進行編目成類別和子文件夾等排序是這樣的:

Videos 
|---Music Videos 
     |---Music video 01 
     |---Music video 02 
     |---Music video 03 
|---TV Shows 
     |---TV show 01 
     |---TV show 01 

我與大多數掙扎在看什麼正在研究用戶在UI關閉後如何存儲這些數據。我一直在尋找XML綁定,但我似乎無法創建一個體面的xml架構,似乎與樹視圖正常工作。

另外,我將如何去存儲URL與視頻名稱,但樹視圖只顯示名稱?

我會非常感謝任何關於這個最好的方法的指針。有沒有更好的辦法?這一切都很混亂。

非常感謝。

回答

1

良好的數據架構是一個不平凡的問題,我可以提供一些我的想法,但不能保證它們都是一個好主意。

首先不建議直接使用XML數據,如果您嘗試做更復雜的事情會變得非常不方便。

你可以將你的數據序列化爲XML,但你應該知道它的限制和副作用,這裏有一些問題可以在這裏找到,它試圖比較不同的序列化方法,你可能想要尋找那些作爲其他格式可能更適合。 XML的兩個方面是相當明顯的,例如:

  • 巨大的文件大小的額外開銷,由於標籤&和基於文本的數據
  • 不同於二進制序列化的數據是或多或少人類可讀和透明

在任何情況下,我會使用數據庫或正常的對象模型和serialize/deseriale存儲。

如果你想允許你可能需要使用一個composite pattern子類,你可以再有一個對象VideoCategory,既實現接口IVideoComposite,其中Category例如具有ObservableCollection<IVideoComposite>類型的屬性Children

然後,您可以使用隱式類型的數據類型(HierarchicalDataTemplateCategory)在您的TreeView中創建項目。 (對於Category之一,您將綁定ItemsSourceChildren

+0

好的,謝謝你的回覆。不過,你是對的,因爲我在XML方面無處可去。我現在正在研究SQLite,它似乎更符合我的需求。 有沒有很多體面的信息或教程。我可能不得不買書。 無論如何,感謝您的想法。 – user924014