2011-02-28 65 views
2

我有一個類似的數據庫結構:在Silverlight中將WCF DomainService數據綁定到TreeView的最佳方式是什麼?

  • ID
  • 名稱
  • ParentItemFK(任務&筆記可以有任何項目作爲家長

    項目;類別只能有其他類別作爲父母)

  • 類別FK
  • TaskFK
  • NoteFK

分類

  • ID
  • 說明(可選)

任務

  • ID
  • FullDescription
  • IsComplete

  • ID
  • 全文

的項目是顯示在一個TreeView。一個項目可以是一個類別,任務或筆記(因此只有一個FK列被填寫)。

我想在TreeView中顯示所有項目。我正在使用帶WCF的DomainService從後端獲取數據,以便在Silverlight中顯示。

我可以編程方式創建對象在TreeView(即使一個物體如ItemNode,與孩子ItemNodes對於每個子項)被顯示。這可能會好了工作,但是當該具有的DomainService中的數據被刷新,我想ItemNodes的整個列表就必須重建(這可能經常發生)。

我在使用DomainService下的實體框架,如果有問題。

有沒有更好的方法來做到這一點?

謝謝!

回答

1

我做了類似的事情,我創建了一個代表我的層次結構的自定義對象。然後我創建了一個輔助類來遞歸通過自定義對象並創建樹節點以綁定到TreeView。

我還使用了層次SQL數據類型來表示數據庫中的我的層次。

由於您使用的實體框架,我認爲您最好的選擇是創建一些TreeNode類,它將採用您的實體,然後通過它們進行遞歸,然後吐出TreeNodes的層次結構,然後您可以綁定到樹視圖。

此外,您需要將該實體的唯一標識符放在TreeNode.Value中,這樣當用戶與節點交互時,您將能夠輕鬆修改表示TreeNode的實體。因此,創建另一個類,它將通過您的實體遞歸併根據其標識符獲取對該實體的引用。

hth

+0

很好,謝謝你的洞察力 – 2011-04-27 16:25:35

相關問題