2013-02-05 53 views
0

我已經開始瞭解WPF。我選擇了構建簡單的ItemStructureCreator。
我也在使用MVVM模式。
我實現了一些類,並面臨一個問題,以正確地綁定到我的TreeView。WPF TreeView綁定到一個複雜的模型

Here is my class diag

現在我想我StructureManagerView有與我的結構的產生密切相關TreeView控件。
我試圖綁定這樣的:

<TreeView Name="tree" DataContext="{Binding MainItem}" Grid.Column="0" Background="Beige"> 
     <TreeView.ItemTemplate> 
      <HierarchicalDataTemplate ItemsSource="{Binding Item.Children}"> 
       <TextBlock Text="{Binding Item.Code}" HorizontalAlignment="Stretch"/> 
      </HierarchicalDataTemplate> 
     </TreeView.ItemTemplate> 
    </TreeView> 

或像這樣(這裏我認爲是錯誤的原因ItemsSource屬性需要集合):

<TreeView Name="tree" ItemsSource="{Binding MainItem}" Grid.Column="0" Background="Beige"> 
     <TreeView.ItemTemplate> 
      <HierarchicalDataTemplate ItemsSource="{Binding Item.Children}"> 
       <TextBlock Text="{Binding Item.Code}" HorizontalAlignment="Stretch"/> 
      </HierarchicalDataTemplate> 
     </TreeView.ItemTemplate> 
    </TreeView> 

能否請你幫我正確設置Bindigs

問候,德米特里。

+1

TreeView的沒有一個 「主項」 的概念來代替。你應該綁定TreeView自身的ItemsSource屬性。我的意思是,你的'ItemsSource =「{Binding MainItem}」'應該被替換爲'ItemsSource =「{Binding MainItems}」,其中MainItems是一個IEnumerable。 –

+0

TY爲您的迴應。是的,我現在試過了,它顯示了我的主要項目。但我的HierarhicalDataTemplate沒有正常工作。它沒有顯示項目。現在我看到我需要用於ItemMaterialViewModel的數據模板。但是它一定是什麼?樣式,DataTemplate還是什麼? – StNickolas

+0

將'ItemsSource =「{Binding Item.Children}」'改爲'ItemsSource =「{綁定兒童}」' –

回答

2

轉換我的評論到一個答案:

TreeView的沒有一個「主項」的概念。

您應該綁定TreeView自身的ItemsSource屬性。

ItemsSource="{Binding MainItem}"

ItemsSource="{Binding MainItems}"

其中MainItems是一個IEnumerable