Problème de design/mise en page auto
Bonjour à tous,
Je fais face à un probleme de mise en page assez étrange en silverlight 3 :
Imaginons le code suivant dans la page principale de l'appli silverlight :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
<StackPanel>
<layoutToolkit:Accordion HorizontalAlignment="Stretch" SelectionMode="OneOrMore">
<layoutToolkit:AccordionItem Header="Liste" HorizontalAlignment="Stretch">
<local:UCListe />
</layoutToolkit:AccordionItem>
<layoutToolkit:AccordionItem Header="Details" HorizontalAlignment="Stretch">
<Button Content="Click" Click="Button_Click" />
</layoutToolkit:AccordionItem>
</layoutToolkit:Accordion>
</StackPanel> |
Maintenant, voici le code du usercontrol UCListe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <Grid>
<data:DataGrid ItemsSource="{Binding ListePersonnes}">
<data:DataGrid.Columns>
<data:DataGridTemplateColumn>
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Nom, Mode=TwoWay}" />
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
<data:DataGridTemplateColumn>
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding Prenom, Mode=TwoWay}" />
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>
</Grid> |
Grid étant le premier controle au sein du usercontrol.
La liste est bindée à une observablecollection, jusque là tout va bien. Lorsque j'ajoute des lignes à cette grille, le conteneur s'étend bien verticalement pour afficher les lignes ajoutées, donc en gros il prend toute la hauteur du datagrid.
Maintenant, mon problème est que j'aimerai pouvoir ajouter d'autres controles dans ce usercontrol Liste. J'ai donc changé la balise Grid en mettant un stackpanel à la place.
L'affichage reste le meme sauf que quand j'ajoute des lignes, le conteneur ne s'étend pas verticalement, je suis obligé de réduire l'accordionitem puis de l'ouvrir à nouveau pour que ca refresh la hauteur globale.
Auriez vous une idée de comment je pourrais faire pour ne pas avoir ce soucis ?
Merci d'avance
@ bientot