2009-12-04 13 views
0

Mon pied de page est actuellement composé d'une étiquette et d'un ItemsControl. Il doit être inférieur à 2 contrôles DataGrid similaires en ce sens qu'ils contiennent tous les deux une colonne de largeur fixe pour chaque jour de la semaine et à la fin de celui-ci (ce qui correspond à la valeur TotalsControl du pied de page).Mise en page wpf dataagrid footer

J'essaie de résoudre l'alignement, ce qui semble le plus facile à aligner à droite les colonnes de jour. Je pensais pouvoir utiliser un DockPanel comme conteneur et Dock = Right sur ItemsControl comme ci-dessous, mais tout commence à gauche après l'étiquette.

<DockPanel x:Name="columnTotals" DockPanel.Dock="Bottom" > 

    <Label ... DockPanel.Dock="Left" Width="Auto">Grand Totals</Label> 

     <ItemsControl DockPanel.Dock="Right" 
      ItemsSource="{Binding Path=TotalTimeViewModels, Mode=OneWay}"> 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal"/> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
     </ItemsControl> 

    </DockPanel> 

Donc, ma première question dans ce post est: pourquoi ne pas le ItemsControl fait ancrer à droite de celui-ci est conteneur parent (actuellement aussi un DockPanel)?

Cheers,
Berryl

La question secondaire et plus complexe est de savoir comment faire une ligne de bas de page avec des colonnes de DataGrid. Ma pensée principale à ce jour a été d'utiliser le fait que les dernières colonnes sont toujours les mêmes et leur largeur est fixe.

Je peux aligner les choses avec un StackPanel en utilisant FlowDirection = RightToLeft et 8 labels enfants (par opposition à un ItemsControl), mais cela a l'inconvénient de rendre le XAML gonflé et nécessite que le texte soit RightToLeft pour inverser le conteneur écoulement - c'est désordonné et déroutant à regarder. Je suppose que le pied de page pourrait également être un autre DataGrid, mais les colonnes ne seraient pas les mêmes, donc je devrais encore résoudre l'alignement soit en travaillant de droite à gauche comme je le fais maintenant, ou devinez quoi le point de départ des colonnes de jour est à la fois initialement et après un redimensionnement (je ne sais pas comment faire cela).

Encore une fois, merci pour lire ceci et Cheers,
Berryl

Répondre

0

Ce code permet de résoudre le problème d'alignement à l'aide d'un DockPanel:

<DockPanel LastChildFill="True" DockPanel.Dock="Bottom" > 

    <ItemsControl DockPanel.Dock="Right" Width="Auto" ... /> 

    <Label ... Width="Auto">Grand Totals</Label> 

</DockPanel> 

Cheers,
Berryl