C# WPF Treeview,每个深度有不同的集合

C# WPF Treeview,每个深度有不同的集合,c#,wpf,xaml,treeview,C#,Wpf,Xaml,Treeview,我是WPF的新手,需要你的帮助。我学习了很多教程,但都不管用 我有两个观察列表L1和L2要绑定,我想归档: 深度1-第一个列表和每个子列表2 L1.1 L2.1 L2.2 L2.3 L1.2 L2.1 L2.2 L2.3 L1.3 L2.1 L2.2 L2.3 更新16.02.07-16:44 我的第一次尝试: <TreeView Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignmen

我是WPF的新手,需要你的帮助。我学习了很多教程,但都不管用

我有两个观察列表L1和L2要绑定,我想归档: 深度1-第一个列表和每个子列表2

  • L1.1
    • L2.1
    • L2.2
    • L2.3
  • L1.2
    • L2.1
    • L2.2
    • L2.3
  • L1.3
    • L2.1
    • L2.2
    • L2.3
更新16.02.07-16:44

我的第一次尝试:

        <TreeView Grid.Column="1" HorizontalAlignment="Stretch"   VerticalAlignment="Stretch" Grid.Row="1" Margin="10" ItemsSource="{Binding orderCities}">
        <TreeView.Resources>
            <DataTemplate DataType="{x:Type model:city}">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding name}" />
                </StackPanel>
            </DataTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding products}" DataType="{x:Type model:Product}">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding name}" />
                </StackPanel>
            </HierarchicalDataTemplate>
        </TreeView.Resources>
    </TreeView>

我的第二次尝试:定义两个数据模板如何处理我的类型:

<UserControl.Resources>
    <HierarchicalDataTemplate DataType="{ x:TypeExtension model:city }" ItemsSource="{Binding orderCities}">
        <StackPanel>
            <TextBlock Text="{Binding name}" />
            <!-- Here embed Product Type (Dont know how)-->
        </StackPanel>

    </HierarchicalDataTemplate>
    <HierarchicalDataTemplate DataType="{ x:TypeExtension model:Product }" ItemsSource="{Binding products}">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding name}" />
            <TextBlock Text=" - " />
            <TextBox Text="1" />
        </StackPanel>
    </HierarchicalDataTemplate>
</UserControl.Resources>

并测试了两个模板,得到了正确的设计

<TreeView ItemsSource="{Binding orderCities}" />
<TreeView ItemsSource="{Binding orderCities}" />

仅树视图在这里对您没有帮助。您必须实际创建要显示的数据,即treeview不会将两个列表“相乘”


第一个列表中的每个元素当然可以在其子属性中返回第二个列表的相同实例。您可能想查看一下,它已经很旧了,但它很好地介绍了如何使用wpf treeview。

首先发布您所做的工作。阅读如何发布一篇文章以寻求帮助