2009-08-13 35 views
1

我有一個非常扁平的結構樹視圖,只有兩個級別的項目 - 主要的和子級的一個級別。我正在使用WPF MVVM,並希望以不同方式對兩個級別進行樣式設置,但不知道如何。不同級別的WPF樹視圖的樣式不同嗎?

我將TreeView綁定到ViewModel中的ObservableCollection,並且每個元素都有一個更多的ObservableCollection用於下一級別。

任何幫助?

回答

7

這可以通過DATABINDING和使用DATATEMPLATES來完成。

您將設計兩個DataTemplates。 1作爲一個分層的DataTemplate和其他作爲一個標準的版本爲您的較低水平(這是因爲你只使用2級)

那麼你HierarchicalDataTemplate的ItemTemplate中設置到正規的DataTemplate

詳細信息可以在這裏找到:從上面的網站http://msdn.microsoft.com/en-us/magazine/cc700358.aspx

代碼片段:

<!-- ORDER DETAIL TEMPLATE --> 
    <DataTemplate x:Key="OrderDetailTemplate"> 
     <TextBlock> 
     <Run>Product:</Run> 
     <TextBlock Text="{Binding Path=Product}" /> 
     <Run>(</Run> 
     <TextBlock Text="{Binding Path=Quantity}" /> 
     <Run>)</Run> 
     </TextBlock> 
    </DataTemplate> 

    <!-- ORDER TEMPLATE --> 
    <HierarchicalDataTemplate 
     x:Key="OrderTemplate" 
     ItemsSource="{Binding Path=OrderDetails}" 
     ItemTemplate="{StaticResource OrderDetailTemplate}" 
     > 
     <TextBlock Text="{Binding Path=Desc}" /> 
    </HierarchicalDataTemplate> 
+0

這個答案從詢問確切同樣的問題救了我。 – IbrarMumtaz 2012-04-11 13:16:46