对WPF树视图的不同级别进行不同的样式设置?

对WPF树视图的不同级别进行不同的样式设置?,wpf,mvvm,treeview,styling,Wpf,Mvvm,Treeview,Styling,我有一个结构非常扁平的树状视图,只有两个级别的项目——主项目和一个级别的子项目。我使用的是WPF MVVM,我想用一种方式来改变这两个级别的风格,但不知道如何 我将treeview绑定到ViewModel中的ObservableCollection,每个元素都有一个用于下一个级别的ObservableCollection 有什么帮助吗?这可以通过数据绑定和使用数据模板来实现 您将设计两个数据模板。1作为分层数据模板,另一个作为较低级别的标准版本(这是因为您仅使用2个级别) 然后将Hierarch

我有一个结构非常扁平的树状视图,只有两个级别的项目——主项目和一个级别的子项目。我使用的是WPF MVVM,我想用一种方式来改变这两个级别的风格,但不知道如何

我将treeview绑定到ViewModel中的ObservableCollection,每个元素都有一个用于下一个级别的ObservableCollection


有什么帮助吗?

这可以通过数据绑定和使用数据模板来实现

您将设计两个数据模板。1作为分层数据模板,另一个作为较低级别的标准版本(这是因为您仅使用2个级别)

然后将HierarchycalDataTemplate的ItemTemplate设置为常规DataTemplate

详情可在此找到:

来自上述站点的代码片段:

 <!-- 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>

产品:
(
)

这可以通过数据绑定和使用数据模板来实现

您将设计两个数据模板。1作为分层数据模板,另一个作为较低级别的标准版本(这是因为您仅使用2个级别)

然后将HierarchycalDataTemplate的ItemTemplate设置为常规DataTemplate

详情可在此找到:

来自上述站点的代码片段:

 <!-- 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>

产品:
(
)

这个答案避免了我问完全相同的问题。这个答案避免了我问完全相同的问题。