2013-02-06 62 views
3

我想显示使用WPF的TreeView以下:WPF TreeView的多个的ItemsSource

TreeView structure

我的对象是不同的,不存在基类或接口,我必须定义为每个项目,STOP一个HierarchicalDataTemplate例如我可以只添加一个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> 

我有途径的集合,每个路径上有止损,每个站都有交付和皮卡,每个交付都有项目每个项目都有自己的项目等等......如何解决这个问题?

+1

我觉得像休耕的解决办法是那么好 [WPF树视图数据绑定的层级与混合型数据] [提问]。 [提问]:HTTP://stackoverflow.com/questions/3673173/wpf-treeview-databinding-hierarchal-data-with-mixed-types/3673232#3673232 –

回答

2

这听起来像是一个异质的数据源问题。我认为这个solution可能是你正在寻找的。

+0

谢谢,这是我一直在寻找。 – Pking