2010-11-19 22 views
2

私はTreeViewで表示したいのですが、ListBoxのように表示される階層をいくつか持っています。WPFでTreeViewを平坦化する

私が持っているデータは、(サブレベルの任意の数の可能性が)次のようになります。

Item 1 
    Child 1 
    Child 2 
Item 2 
    Child 3 
    Child 4 

は、私はこのように表示するデータが欲しい(ととき必要ラップ):

Item 1 Child 1 Child 2 Item 2 Child 3 Child 4 

親ビューと子アイテムの関係を維持できるように、私はTreeViewを使いたいので、ListBoxを使用したくないのです。 ありがとう!

+0

適切な答えを書き留める時間がないため、リストボックスをグループ化して使用することを検討してください。グループ化は 'CollectionViewSource'クラスにあります –

答えて

0

私は最善の方法は、最後までヒットするまでツリーをスクロールする再帰関数を実装することだと思います。この関数は、参照されるリストまたはコレクションをパラメータおよび現在のノードとして使用します。ここ

はあなたのデータ構造と、ビュー間の明確な分離を持っていないということです。これはあなたが持っている問題のように聞こえること

Sub GenerateListFromTree(Node oNode, List oList)

AddItemToList(oNode.Name) 

For each Node oChildNode in oNode.Nodes 
    GenerateListFromTree(oChildNode,oList) 
Next 

End Sub

0

ための擬似コードです。 WPFではないツリーを持っている場合は、ツリービューを簡単にマップする必要があります。ツリーがある場合、リストビューで使用できるツリーノード分子を作成できます。

こうすることで、関係は決して変化しません。つまり、データがUIにどのように投影されるかだけです。

関連する問題