1

我有一个分层数据模型:

public class AssetClassLevelViewModel
{    
     public string AssetClassName {get; set;}

     public ObservableCollection<AssetClassLevelViewModel> ChildAssetClasses {get; set;}

     public ObservableCollection<ProductHoldingsWithAllocationViewModel> ProductHoldings {get; set;}

}

图像中的列标题反映了 ProductHoldingsWithAllocationViewModel 属性。

多级层次结构和列标题的快照

我需要在网格顶部移动列标题,并且不希望它们在每个分组级别重复。

有解决方案吗?在 xaml 中,我将HeaderPlacement属性设置为OnTopOnly

谢谢

哈萨宁

4

3 回答 3

2

我相信您可以使用以下样式来确保标题行仅位于顶部:

<Style TargetType="{x:Type Ig:XamDataGrid}" BasedOn="{StaticResource {x:Type Ig:XamDataGrid}}">
  <Setter Property="FieldLayoutSettings">
    <Setter.Value>
      <igDP:FieldLayoutSettings HeaderPlacement="OnTopOnly" HeaderPlacementInGroupBy="OnTopOnly"/>
    </Setter.Value>
  </Setter>
</Style>

我相信“OnTopOnly”确保标题行仅显示在网格的最顶部,而不是每个组标题中。

于 2012-07-20T04:52:25.837 回答
0

Infragistics 向我建议了以下解决方法来隐藏所有子表标题:

DataRecordPresenter为您的资源添加样式:

<local:TestConverter2 x:Key="testconv2"/>
<Style TargetType="{x:Type igDP:DataRecordPresenter}">
   <Setter Property="Height" Value="{Binding Converter={StaticResource testconv2}}"/>
</Style>

并将以下转换器添加到您的项目中:

public class TestConverter2 : IValueConverter
{
    private int count = 0;

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        DataRecord dr = value as DataRecord;
        if (dr == null)
        {
            return double.NaN;
        }

        if (dr is HeaderRecord)
        {
            if (this.count < 1)
            {
                this.count++;
                return double.NaN;
            }
            else
            {
                return 0;
            }
        }
        else
        {
            return double.NaN;
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        return value;
    }
}
于 2014-04-03T14:05:38.797 回答
0

答案可能有点晚,但是在 XAML 中的 XamDataGrid 上,您只需将 FilterUIType-Property 设置为 LabelIcons,当 XamDataGrid 分组时,ColumnHeaders 将位于顶部。就像这里:

<igDP:XamDataGrid.FieldLayoutSettings>
   <igDP:FieldLayoutSettings FilterUIType="LabelIcons"/>
</igDP:XamDataGrid.FieldLayoutSettings>
于 2017-05-24T13:00:08.493 回答