2010-12-21 86 views
1

我想將列表框項目源綁定到多個列表的集合。即綁定列表框項目源到Windows Phone 7中的集合集合

列表PersonCollection

  • 表人

  • 列表集合

現在我需要從這兩個列表中顯示的項目。在WPF你可以使用HierarchicalDataTemplate我相信,但不知道我怎麼能在Windows Phone 7中做到這一點。嘗試與Blend,它會生成以下數據模板。

<DataTemplate x:Key="PersonDataTemplate"> 
    <Grid> 
     <StackPanel Margin="0,0,1,0" Orientation="Vertical" VerticalAlignment="Top"> 
      <TextBlock Margin="0,0,1,0" TextWrapping="Wrap" Text="{Binding Person[0].Name}" d:LayoutOverrides="Width"/> 
      <TextBlock Margin="0,0,1,0" TextWrapping="Wrap" Text="{Binding Collection[0].Total}" d:LayoutOverrides="Width"/> 
     </StackPanel> 
    </Grid> 
</DataTemplate> 

<ListBox Height="300" x:Name="personList" ItemsSource="{Binding PersonCollection}" Margin="10,0" ItemTemplate="{StaticResource PersonDataTemplate}"/> 

有沒有另一種方法可以做到這一點?我試圖將DataTemplate中的文本框的DataContext設置爲單個數組,但似乎不起作用。無法找到在網絡上除了那個HierarchicalDataTemplate沒有在Windows Phone支持確認類似的事情7.

我還有其他方法可以做到,但沒有優雅..提前

感謝。

問候

回答

1

我覺得你的情況可以用兩個級別列表框,而不是樹層次結構來解決。看看下面的技巧是否有效。現在你會看到兩個並排你內心的收集邊的網格其另外兩個ItemsControls(或者你可以有列表框)

<DataTemplate x:Key="PersonCollextionItem"> 
     <Grid> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="0.5*"/> 
       <ColumnDefinition Width="0.5*"/> 
      </Grid.ColumnDefinitions> 
      <ItemsControl ItemsSource="{Binding ListPerson}" ItemTemplate="{StaticResource Templ1}" Grid.Column="0"/> 
      <ItemsControl ItemsSource="{Binding ListCollection}" ItemTemplate="{StaticResource Templ2}" Grid.Column="1"/> 
     </Grid> 
    </DataTemplate> 

    <DataTemplate x:Key="Templ1">    
     <TextBlock Margin="0,0,1,0" Text="{Binding Name}" />     
    </DataTemplate> 

    <DataTemplate x:Key="Templ2"> 
     <TextBlock Margin="0,0,1,0" Text="{Binding Total}" /> 
    </DataTemplate> 


    <ListBox Height="300" x:Name="personList" ItemsSource="{Binding PersonCollection}" Margin="10,0" ItemTemplate="{StaticResource PersonCollextionItem}"/> 
+0

苡,感謝您的 – Tee 2010-12-22 19:46:50