【问题标题】:GridViewDataColumn Aggregate Function VisibilityGridViewDataColumn 聚合函数可见性
【发布时间】:2021-03-21 21:05:10
【问题描述】:

拥有GridViewDataColumn 女巫在IsVisible 属性和聚合函数上有一个绑定,设置IsVisible="False" 不会在组头中隐藏聚合函数:

<telerik:GridViewDataColumn Header="Title" 
                            IsVisible="{Binding IsVisibleProperty}"
                            DataMemberBinding="{Binding SomeProperty}" >
    <telerik:GridViewDataColumn.AggregateFunctions>
         <telerik:SumFunction Caption="Some Caption: "/>
    </telerik:GridViewDataColumn.AggregateFunctions>
</telerik:GridViewDataColumn>

【问题讨论】:

    标签: c# wpf mvvm telerik radgridview


    【解决方案1】:

    我的解决方案是每次都执行下面的代码,某列的IsVisible属性发生了变化:

    foreach (var col in GridWithAggregateFunctions.Columns)
            {
                if (!col.IsVisible)
                {
                    foreach (var func in col.AggregateFunctions.ToList())
                    {
                        col.AggregateFunctions.Remove(func);
                    }
                }
            }
    

    【讨论】:

      【解决方案2】:

      Telerik forums 的组标头中仅显示一个聚合函数存在相关问题。那里的答案也适用于您的问题,因为它本质上是相同的问题。

      关于GridViewGroupRow 的模板结构和内部逻辑,您无法以这种方式预定义此行为。如果您查看GridViewGroupRow 的默认模板,您可以看到元素AggregateResulsList,它显示了聚合函数的结果。这部分在内部处理聚合,无法“指示”它仅显示标题中的第一个函数并忽略其余部分

      因此,您不能隐藏单个聚合函数,而只能隐藏所有。

      但是您可以通过创建一个针对GridViewGroupRow 的简单样式并将ShowHeaderAggregates 属性设置为False 来隐藏所有聚合,如下所示:

      <Style TargetType="{x:Type telerik:GridViewGroupRow}">
        <Setter Property="ShowHeaderAggregates" Value="False"/>
      </Style>
      

      【讨论】:

      • 你说得对,你不能用我提供的代码看到它,但我有多个聚合,并且只在列可见时才显示它们。
      猜你喜欢
      • 1970-01-01
      • 2020-06-07
      • 1970-01-01
      • 2014-06-23
      • 1970-01-01
      • 2021-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多