Ceci est un exemple de code XAML pris du MSDN library article pour la propriété ItemsControl.ItemTemplate:Que fait cet exemple de code MSDN? - ItemsControl.ItemTemplate
<ListBox Width="400" Margin="10" ItemsSource="{Binding Source={StaticResource myTodoList}}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=TaskName}" />
<TextBlock Text="{Binding Path=Description}"/>
<TextBlock Text="{Binding Path=Priority}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Je cherche une explication de l'utilisation de l'élément est <StackPanel>
cet exemple.
->
Où ce panneau va-t-il exister dans la ListBox?
Quel est son rôle dans ItemTemplate?
Peut-on utiliser un System.Windows.Controls.Panel à sa place, en particulier une grille?
Comment utiliser un élément <Grid>
comme modèle pour chaque élément de la ListBox?
Voici le concept que je vais faire:
http://img151.imageshack.us/img151/7960/graphconcept.png
J'ai dessiné le graphique en utilisant un élément <Path>
, et il n'y a pas de problèmes. Je travaille sur les étiquettes pour les axies, et j'expérimente l'utilisation d'un élément <Grid>
dans le ItemTemplate - mais je ne sais pas comment la grille est censée fonctionner dans ce contexte, et MSDN ne dit rien à propos de le panneau dans leur exemple de code.
Mon XAML pour les étiquettes de l'axe Y ressemble actuellement à ceci:
<ListBox Background="Transparent" BorderThickness="0" ItemsSource="{Binding Path=GraphLabelYData}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="{Binding Path=GraphLabelSpacing}" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="{Binding ElementName=GraphLabelYData, Path=GraphLabelMarkerLength}" />
</Grid.ColumnDefinitions>
<TextBlock HorizontalAlignment="Right" VerticalAlignment="Bottom" Text="{Binding Path=GraphLabelTag}" />
<Rectangle Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Stroke="Black" Fill="Black" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Est-ce que ce regard correct? Rien ne s'affiche au moment de l'exécution, mais je veux m'assurer que le XAML est modélisé correctement avant de débuter le débogage des liaisons de données et du code-behind.
Ceci est l'une des raisons pour lesquelles j'aime XAML/WPF - vous pouvez faire des trucs * vraiment * fous dans un contrôle si vous voulez .... –
Trop de questions ici - Je ne sais pas par où commencer ... –