2009-11-24 6 views
0

J'essaie d'utiliser un ItemsControl pour afficher un DataTemplate. J'ai cet exemple simple:Silverlight ItemsControl

<navigation:Page.Resources> 
    <DataTemplate x:Key="PictureResultsTemplate"> 
     <!--<Grid/> --> 
     <TextBlock Text="Nick Was Here"></TextBlock> 
    </DataTemplate> 
</navigation:Page.Resources>  


<Grid x:Name="LayoutRoot"> 
    <Grid Margin="0,0,8,8"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="0.102*"/> 
      <RowDefinition Height="0.898*"/> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto"/> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 

    <ItemsControl x:Name="PictureResults" Margin="0,8,0,0" Grid.Row="2" ItemTemplate="{StaticResource PictureResultsTemplate}"> 
    </ItemsControl>  

    </Grid>   

</Grid> 

Comment le texte du bloc de texte n'est pas visible? Merci!

Répondre

1

Je pense que vous aurez besoin de définir ItemsSource ou Items sur le contrôle items, ou vous n'aurez pas d'éléments pour appliquer votre ItemTemplate.

Non, vous ne devez pas lier à une source de données. Vous pouvez ajouter des éléments directement dans xaml. Voir ci-dessous:

<UserControl 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     x:Class="QuickTests.MainPage" 
     xmlns:System="clr-namespace:System;assembly=mscorlib" 
     Width="640" Height="480"> 
    <UserControl.Resources> 
     <DataTemplate x:Key="myStringTemplate"> 
      <StackPanel> 
       <TextBlock Text="{Binding}"/> 
       <TextBlock Text="Yep, this is an item"/> 
      </StackPanel> 
     </DataTemplate> 
    </UserControl.Resources> 
        <ItemsControl ItemTemplate="{StaticResource myStringTemplate}"> 
         <ItemsControl.Items> 
          <System:String>hello</System:String> 
          <System:String>world</System:String> 
         </ItemsControl.Items> 
        </ItemsControl> 
    </UserControl> 
+0

Voulez-vous dire que je dois le lier à une source de données? Comment auriez-vous un bloc de texte pour l'étiquetage alors? – Nick

+0

@Nick: votre modèle peut contenir un bloc de texte contenant du texte statique en tant qu'étiquette. Toutefois, pour qu'une instance de votre modèle soit créée, le contrôle des éléments doit être lié à une collection qui contient au moins un élément. – AnthonyWJones

Questions connexes