2012-03-14 15 views
0

ツリービューの階層データテンプレートをプロジェクトに実装したいと思います。 構造は、次のようになります。ツリービューの階層データテンプレートクラス

- ManagedItems (RootItem) 
    - Department 1 
     -Client 1 
      - Feature 1 
      - Feature 2 
     -Client 2 
      - Feature 1 
    - Department 2 
      - Department 4 
        - Department 5 
          -Client 4 
            - Feature 1 
    - Department 3 
     -Client 3 
      - Feature 1 
      - Feature 2 
      - Feature 3 


//Current class for datatype 
public class Entries 
{ 
    public string Department { get; set; } 
    public string Client { get; set; } 

    // ?? How to implement a drive array and a feature array which will be displayed correctly in the treeview? 

    public ObservableCollection<Entries> Children { get; set; } 
} 

これは、C#とWPF(.NET 4.0)であります。 いくつかのアイデア?

ありがとうございました。

答えて

1

お使いのモデルのワイヤーフレーム:

class ManagedItems { 
    IList<Department> Departments // TreeView.ItemsSource 
} 
class Department {// HierDT 
    IList<object> Children // HierDT.ItemsSource; (can either be Department or Client) 
} 
class Client {// HierDT 
    IList<Feature> Features // HierDT.ItemsSource 
} 
class Feature { } // normal DataTemplate 

TreeView.ResourcesDepartmentClientHierDTsFeatureDataTemplateを定義します。

Department.Childrenは、objectsです。 WPFがClientを "見て"いるとき、それは適切なHierDTに "膨らんで"(Departmentが見えるときには、DepartmentHierDTと定義されています)ので、これは問題ありません。

+0

この記事(http://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode)は、Web上のWPF TreeViewの事実上の最良の例です。 MVVMについて聞いたことがない場合は、MVVMのいくつかの例を参照してください。 –