2010-03-03 5 views
0

je le domaine suivant:WPF DataGrid liant

public class FileInformation 
{ 
public String FileName; 
public String CreatedBy; // name of user who created the file 
public String CreatedComments; 
public String CreatedDate; 
public String EditedBy; // name of user who last edited the file 
public String EditedComments; 
public String EditedDate; 
} 

public class Folder 
{ 
public List<FileInformation> Files {get;set} 
} 

Je veux avoir un DataGrid WPF et lier la liste des fichiers dans la classe « Dossier » pour ce ..... Il est assez facile de se Je veux avoir les données affichées de manière standard ..... mais je veux l'avoir affiché de la manière suivante:

alt text http://i49.tinypic.com/nbua94.jpg

Toutes les idées sur ce que je dois faire pour avoir les données affichées de cette façon ?

Répondre

0

manière la plus simple de le faire est la suivante:

  • Extrait un CollectionView de la liaison:

CollectionView cv = (CollectionView)(CollectionView)CollectionViewSource.GetDefaultView(_grid.ItemsSource);

  • Créer un groupe basé sur FileName:

cv.GroupDescriptions.Add(new PropertyGroupDescription("FileName"));

  • Créez un GroupStyle dans la grille qui affiche le Gorup comme vous le souhaitez.

<GroupStyle> 
     <GroupStyle.ContainerStyle> 
     <Style TargetType="{x:Type GroupItem}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type GroupItem}"> 
         <Expander IsExpanded="True" Header={Binding Name}> 
          <ItemsPresenter/> 
         </Expander> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 
     </GroupStyle.ContainerStyle> 
    </GroupStyle> 
</DataGrid.GroupStyle> 

Le style ne sera pas présenté didsplay l'info exactement tel que présenté dans la capture d'écran, mais basé sur ce pourrait personnaliser le Tou contenu pour répondre à vos besoins ...