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

时间:2016-02-07 15:06:28

标签: c# wpf xaml treeview

我是WPF的新手,需要你的帮助。我遵循了许多教程但没有任何作用。

我有两个ObserveableLists L1和L2要绑定,我想要archiev: 深度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>

我的第二次尝试:定义两个DataTemplates如何处理我的类型:

<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}" />

1 个答案:

答案 0 :(得分:0)

树视图本身并不能帮到你。你必须实际创建你想要显示的数据,即树视图不会成倍增加&#34;这两个清单。

第一个列表中的每个元素当然可以在其子属性中返回第二个列表的相同实例。您可能希望查看this codeproject article,它相当陈旧,但会对如何使用wpf树视图做一个很好的介绍。

相关问题