2012-03-21 67 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