2010-03-03 2 views
0

У меня есть следующий домен:WPF DataGrid привязки

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} 
} 

Я хочу иметь DataGrid WPF и привязать список файлов в классе «Папка» к нему ..... Это довольно легко, если Я хочу, чтобы данные отображаемые в стандартном пути ..... но я хочу, чтобы он показывался следующим образом:

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

Любые идеи о том, что я должен сделать, чтобы иметь данные, отображаемые в этом случае ?

ответ

0

Простейший способ сделать это:

  • Извлечение CollectionView из Переплет:

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

  • Создать группировку на основе FileName:

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

  • Создайте GroupStyle в Grid, который отображает Gorup так, как вы этого хотите.

<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> 

Представленный стиль не didsplay информацию так, как представлено на скриншоте, но на основе этого УИ может настроить содержание, чтобы соответствовать вашим потребностям ...

Смежные вопросы