我的問題如下:我得到了一個具有動態深度類別的樹(每個類別可以有子類別以及條目)。HierarchicalDataTemplate - 忽略生成的特定類型
現在我添加了一個HierarchicalDataTemplate類別在TreeView中正確顯示。但是我收到很多空的條目,它們不適用模板(錯誤的類型),但在樹中顯示爲「屍體」。
如何禁止他們從生成過程?因爲它是一棵抽象樹,它們與類別具有相同的基類。所以他們進入樹,因爲樹總是搜索包含類別,條目或兩者兼有的「分支」屬性。
任何想法?我沒有發現TreeView的任何事件,這可能讓我有機會在生成期間跳過各種條目,也沒有模板的任何選項/屬性來這樣做。
詳細描述:我有一個通用的Tree類。這個類有分支類型「A_TreeLeaf」(抽象)。當然樹的泛型類型必須繼承A_TreeLeaf。我的數據是按類別(CategoryTreeLeaf)和Data(DataTreeLeaf)構建的。當然,每片葉子可以有子葉子(分支)。
現在我從數據庫加載我的數據並構建樹。每個類別都有X個子類別。而且每個類別也可以包含一些數據。這種結構對我有很大幫助,因爲我得到了清晰的類別和數據分層結構。這樣它應該可視化給用戶。但我想分開數據和類別。 TreeView應該只顯示類別(通過HierarchicalDataTemplate),而ListView只顯示數據(通過DataTemplate)。 ListView工作正常,但樹顯示了一些「屍體」入口,即DataTreeLeaf實例。
我想過濾一代DataTreeLeafs,或者只是停止顯示它們的TreeView。有沒有「非黑客」解決方案?我不想複製樹並刪除數據樹葉,除非它真的有必要......因爲這會導致大量開銷工作爲我做,並且管理後面的代碼使用真正的樹或可視化與假樹(因爲我需要橋接它在某種程度上改變時會自動更新)。
發佈示例代碼和數據以重現問題。 –
我無法發佈示例代碼。至少不是整個樹/葉類。但我會更新說明更詳細 – SharpShade