2009-07-12 3 views
0

Ich habe eine Reihe von beobachtbaren Sammlungen und ich möchte alle diese Sammlungen in einer einzigen Listbox anzeigen. Die Daten in jeder dieser Sammlungen sind vom gleichen Typ und sie wurden auf der Grundlage einer bestimmten Kategorie getrennt.Kann die DataTemplate einer Listbox in Silverlight eine Auflistung von Listen sein

Meine Frage ist also, ist es möglich, dass die DataTemplate einer Listbox eine Listbox enthält?

Antwort

1

Ja, als Beispiel, die XAML:

<UserControl x:Class="SilverlightApplication1.Page" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Width="400" Height="300"> 
    <Grid x:Name="LayoutRoot" Background="White"> 
     <ListBox ItemsSource="{Binding }"> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <StackPanel > 
         <TextBlock Text="{Binding Name}" /> 
         <ListBox ItemsSource="{Binding InnerList}"> 
          <TextBlock Text="{Binding }" /> 
         </ListBox> 
        </StackPanel> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 
    </Grid> 
</UserControl> 

Der Code:

using System.Collections.Generic; 
using System.Windows.Controls; 

namespace SilverlightApplication1 
{ 
    public partial class Page : UserControl 
    { 
     public Page() 
     { 
      InitializeComponent(); 
      this.DataContext = new List<Data>() 
      { 
       new Data(){Name = "First"}, 
       new Data(){Name = "Second"}, 
       new Data(){Name = "Third"}, 
       new Data(){Name = "FourthWithDifferentData", InnerList=new List<string>(){"a", "b", "c"}} 
      }; 
     } 
    } 
} 

public class Data 
{ 
    public List<string> InnerList { get; set; } 
    public string Name { get; set; } 
    public Data() 
    { 
     InnerList = new List<string>(){"String1", "String2", "String3"}; 
    } 
} 
Verwandte Themen