WPF TreeView多个itemsSource

时间:2013-02-06 02:59:11

标签: wpf treeview

我想使用wpf TreeView显示以下内容:

TreeView structure

我的对象不同,没有基类或接口,我必须为每个项目定义一个HierarchicalDataTemplate,例如我只能添加一个ItemSource“Deliveries”,但我也想为这个停止添加拾取器。 / p>

<!-- DELIVERY-->
<DataTemplate x:Key="DeliveryDataTemplate">
    <StackPanel Orientation="Horizontal">
        <TextBlock Text="DeliveryId"  Margin="3,3" />
        <TextBlock Text="{Binding DeliveryStatus}" VerticalAlignment="Center" Margin="5" />
        <TextBlock Background="{Binding StopStatus, Converter={StaticResource StatusConverter}}" Width="16" Height="16" />
    </StackPanel>
</DataTemplate>

<!-- STOP -->
<HierarchicalDataTemplate x:Key="StopTemplate"
                          ItemsSource="{Binding Deliveries}"
                          ItemTemplate="{StaticResource DeliveryTemplate}">
    <StackPanel Orientation="Horizontal">
        <TextBlock Text="Stop"  Margin="3,3" />
        <TextBlock Text="{Binding StopId}" Margin="3,3" />
        <TextBlock Background="{Binding StopStatus, Converter={StaticResource StatusConverter}}" Width="16" Height="16" Margin="3,3"  />
    </StackPanel>
</HierarchicalDataTemplate>

<!-- ROUTE -->
<HierarchicalDataTemplate x:Key="RouteTemplate"
                          ItemsSource="{Binding Stops}"
                          ItemTemplate="{StaticResource StopTemplate}">
    <StackPanel Orientation="Horizontal">
        <TextBlock Text="Route"  Margin="5,5" />
        <TextBlock Text="{Binding RouteId}" Margin="5,5" />
        <TextBlock Background="{Binding RouteStatus, Converter={StaticResource StatusConverter}}" Width="16" Height="16"  Margin="5,5" />
    </StackPanel>
</HierarchicalDataTemplate>

我有一系列路线,每条路线都有停靠点,每个停靠点都有交货和取货,每个交货都有物品,每件物品都有自己的物品等等......如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

这听起来像是异构数据源问题。我认为这solution可能就是你想要的。