2010-03-01 7 views
1

J'ai ce code:Dynamique (par programme) ItemTemplate (DataTemplate) dans Silverlight?

 <Grid x:Name="LayoutRoot"> 
    <Grid HorizontalAlignment="Left" Height="900" Width="1200"> 
    <Grid.RowDefinitions> 
      <RowDefinition Height="300"></RowDefinition> 
      <RowDefinition Height="200"></RowDefinition> 
      <RowDefinition Height="200"></RowDefinition> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="300"></ColumnDefinition> 
      <ColumnDefinition Width="300"></ColumnDefinition> 
      <ColumnDefinition Width="300"></ColumnDefinition> 
      <ColumnDefinition Width="300"></ColumnDefinition> 
     </Grid.ColumnDefinitions> 
    <ListBox x:Name="lst1" Width="300" Height="100" Grid.Row="0" Grid.Column="0"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal" Margin="3"> 
          <TextBlock Text="Id:" Foreground="Brown"></TextBlock> 
          <TextBlock Text="{Binding Id}" Foreground="Blue"></TextBlock> 
         </StackPanel> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
    </ListBox> 
    <ListBox x:Name="lst1" Width="300" Height="100" Grid.Row="0" Grid.Column="1"/> 
    <ListBox x:Name="lst2" Width="300" Height="100" Grid.Row="0" Grid.Column="2"/> 
    <ListBox x:Name="lst3" Width="300" Height="100" Grid.Row="0" Grid.Column="3"/> 
    </Grid> 
    </Grid> 

Comment puis-je créer un DataTemplate/ItemTemplate dans le code derrière avec Silverlight?

Répondre

0

Pour créer un DataTemplate dynamiquement, vous devez générer la chaîne Xaml qui le décrit en utilisant des objets de manipulation XML tels que XDocument ou XmlTextWriter. La racine de ce Xaml doit être le DataTemplate lui-même (n'oubliez pas d'inclure ou les espaces de noms corrects).

Vous pouvez alors passer la chaîne résultante XamlReader.Load qui va créer l'DataTemplate que vous attribuez ensuite à la propriété ItemTemplate du ListBox.

Questions connexes