我有一个非常扁平结构的树视图,只有两级项目 - 主要项目和一级子项目。我正在使用 WPF MVVM 并且想要一种不同的方式来设置两个级别的样式,但不知道如何。
我将树视图绑定到 ViewModel 中的 ObservableCollection,每个元素都有一个 ObservableCollection 用于下一级。
有什么帮助吗?
这可以通过 DATABINDING 和使用 DATATEMPLATES 来完成。
您将设计两个 DataTemplate。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>