2010-08-09 6 views
0

Je tente de créer une grille d'éléments, tous dynamiquement (lignes et colonnes) générés. J'ai un listview et un gridview. Je reçois toutes les colonnes et les ajoute à la grille. J'ajoute ensuite toutes mes lignes à une table, et lier cela à la liste.Utilisation de plusieurs LayoutTransforms dans un contrôle (en-tête de grille) dans WPF

J'utilise quelque chose de similaire pour faire pivoter les noms d'en-tête en haut de la vue.

    <ListView Name="lvEverything"> 
        <ListView.Resources> 
         <Style TargetType="{x:Type GridViewColumnHeader}"> 
          <Setter Property="LayoutTransform"> 
           <Setter.Value> 
            <RotateTransform Angle="-90"/> 
           </Setter.Value> 
          </Setter> 
          <Setter Property="Width" Value="250"></Setter> 
         </Style> 
        </ListView.Resources> 

Cela fonctionne très bien, il fait tourner le texte et donne aux colonnes la bonne taille pour l'instant.

Ce que je voudrais faire cependant, il a mis la première colonne à ne pas tourner. Je ne suis pas sûr et je ne peux pas l'appliquer uniquement aux colonnes que je le souhaite.

Répondre

0

remis à l'aide de l'une implicite du HeaderContainerStyle sur la première colonne explicitement qu'il ne tombe pas: si vous créez les colonnes dans le code

<ListView Name="lvEverything"> 
    <ListView.Resources> 
     <Style TargetType="{x:Type GridViewColumnHeader}"> 
      <Setter Property="LayoutTransform"> 
       <Setter.Value> 
        <RotateTransform Angle="-90"/> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="Width" Value="250"></Setter> 
     </Style> 
     <Style x:Key="FirstColumnStyle" TargetType="GridViewColumnHeader"/> 
    </ListView.Resources> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="First Column" 
       DisplayMemberBinding="{Binding FirstColumn}" 
       HeaderContainerStyle="{StaticResource FirstColumnStyle}"/> 
      <GridViewColumn Header="Second Column" 
       DisplayMemberBinding="{Binding SecondColumn}"/> 
     </GridView> 
    </ListView.View> 
</ListView> 

Ou,:

GridViewColumn firstColumn = ...; 
firstColumn.HeaderContainerStyle = new Style(); 
+0

Cela a fonctionné exactement comment je voulais. Merci beaucoup. – jmlumpkin