2009-08-13 65 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