2012-03-21 68 views
2

以下this教程我有一个想法,把更多的数据放在扩展器头。 我有2个表(文档1 - *条目)。 我显示按文档分组的条目,我不想在 datagrid中重复某些数据,所以我想将它放在扩展头中。Datagrid扩展器(来自分组)头

<DataGrid.GroupStyle> 
      <GroupStyle> 
       <GroupStyle.HeaderTemplate> 
        <DataTemplate> 
         <StackPanel> 
          <TextBlock Text="{Binding Path=Name}" /> 
         </StackPanel> 
        </DataTemplate> 
       </GroupStyle.HeaderTemplate> 
       <GroupStyle.ContainerStyle> 
        <Style TargetType="{x:Type GroupItem}"> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate TargetType="{x:Type GroupItem}"> 
            <Expander IsExpanded="True"> 
             <Expander.Header> 
              <StackPanel Orientation="Horizontal"> 
               <TextBlock Text="{Binding Path=Name}" /> 
               <TextBlock Text=" - "/> 
               **<TextBlock Text="{Binding Path=Document.Number or Name2}"/>** 
              </StackPanel> 
              ... 
+0

而百万美元的问题是....? – Silvermind 2012-03-21 18:47:44

+0

如何在扩展头中显示更多数据? – Misi 2012-03-21 19:40:49

+0

什么数据?你需要更具体。 – Paparazzi 2012-03-21 20:20:36

回答

3

你可以这样做:

<Expander.Header> 
<StackPanel Orientation="Horizontal"> 
    <TextBlock Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type GroupItem}}, Converter={StaticResource ResourceKey=groupToTitleConverter}}" /> 
</StackPanel> </Expander.Header> 

转换器:

public class GroupToTitleConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     GroupItem groupItem = value as GroupItem; 
     CollectionViewGroup collectionViewGroup = groupItem.Content as CollectionViewGroup; 
     EntryViewModel entryViewModel = collectionViewGroup.Items[0] as EntryViewModel; 
     string title = string.Format("{0} - {1} {2}", entryViewModel.Id, entryViewModel.Numar, entryViewModel.Obiect); 
     return title; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

以第一个项目从收集组形成头标题可能不是最完美的解决方案,但它会成为目的。

完整代码可以在这里找到:ExpanderHeadersInDataGridGroupStyle.zip