4

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

树视图结构

我的对象不同,没有基类或接口,我必须为每个项目定义一个 HierarchicalDataTemplate,例如 STOP,我可以只添加一个 ItemSource“Deliveries”,但我也想为此站点添加拾取器。

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

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

4

1 回答 1

3

这听起来像是一个异构数据源问题。我认为这个解决方案可能是您正在寻找的。

于 2013-02-06T04:23:53.587 回答