我有一个非常扁平结构的树视图,只有两个级别的项目 - 主要项目和一个子项目级别。我正在使用WPF MVVM,并希望以不同的方式设置两个级别的样式,但不知道如何。
我将树视图绑定到我的ViewModel中的ObservableCollection,并且每个元素还有一个ObservableCollection用于下一个级别。
任何帮助?
答案 0 :(得分:7)
这可以通过DATABINDING和使用DATATEMPLATES来完成。
您将设计两个DataTemplates。 1作为Hierarchical 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>