我正在使用Extended WPF Toolkit的(社区版)来显示具有DateTime列的记录。
<xcdg:DataGridControl
ItemsSource="{Binding ResponseInstructions, UpdateSourceTrigger=PropertyChanged}"
ReadOnly="True"
AutoCreateColumns="False"
>
<xcdg:DataGridControl.Columns>
<xcdg:Column FieldName="Created" Title="Request made">
<xcdg:Column.CellContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding StringFormat=\{0:dd/MM/yy hh:mm\}}" />
</DataTemplate>
</xcdg:Column.CellContentTemplate>
</xcdg:Column>
<!-- SNIP: Some other columns here... -->
<xcdg:Column FieldName="Notes" Title="Notes" Width="*" />
</xcdg:DataGridControl.Columns>
</xcdg:DataGridControl>
我希望能够更改DateTime列的分组行为,以便它按日期分组(即忽略时间),但还保留默认的排序功能(即日期,然后是时间)。
如果不需要保留默认的排序功能,则只需将列从DatetTime更改为Date。有什么办法可以吃我的蛋糕吗?
最终,我发现所需的效果也可以在纯xaml中完成。
这是样本xaml
<xcdg:Column FieldName="Created"
Title="Request made">
<xcdg:Column.GroupDescription>
<xcdg:DataGridGroupDescription PropertyName="Created.Day"/>
</xcdg:Column.GroupDescription>
<xcdg:Column.CellContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding StringFormat=\{0:dd/MM/yy hh:mm\}}" />
</DataTemplate>
</xcdg:Column.CellContentTemplate>
</xcdg:Column>
结果
在上面的示例中,排序基于完整的日期和时间,其中分组位于Created(DateTime)属性的Day属性中
上面的示例基于一些假设,我无法看到您的方法,因为问题中没有提到您的GroupByDate
资源GroupDescription="{StaticResource GroupByDate}"
。
编辑
按照此处的要求,该方法可以更改组的大多数方面,包括顶部面板和组标题
<xcdg:DataGridControl ItemsSource="{Binding ResponseInstructions}"
ReadOnly="True"
AutoCreateColumns="False">
<xcdg:DataGridControl.Resources>
<Style TargetType="{x:Type xcdg:GroupByItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding Title}"
Value="Created.Date">
<Setter Property="Content"
Value="Request made" />
</DataTrigger>
</Style.Triggers>
</Style>
<DataTemplate DataType="{x:Type xcdg:Group}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Value,StringFormat=dd/MM/yy}" />
<TextBlock Text=": " />
<TextBlock Text="{Binding Items.Count}" />
<TextBlock Text=" request(s)" />
</StackPanel>
</DataTemplate>
</xcdg:DataGridControl.Resources>
<xcdg:DataGridControl.Columns>
<xcdg:Column FieldName="Created"
Title="Request made">
<xcdg:Column.GroupDescription>
<xcdg:DataGridGroupDescription PropertyName="Created.Date" />
</xcdg:Column.GroupDescription>
<xcdg:Column.CellContentTemplate>
<DataTemplate>
<TextBlock Text="{Binding StringFormat=\{0:dd/MM/yy hh:mm\}}" />
</DataTemplate>
</xcdg:Column.CellContentTemplate>
</xcdg:Column>
<!-- SNIP: Some other columns here... -->
<xcdg:Column FieldName="Notes"
Title="Notes"
Width="*" />
</xcdg:DataGridControl.Columns>
</xcdg:DataGridControl>
结果
我为顶面板介绍了一种样式,为组头介绍了一种数据模板。我已经使用样式中的数据触发器来设置自定义标题,因为数据网格似乎具有其自己的检索组标题的机制。我还修改了group属性,从Day到Date,因为day是不正确的,因为那只是day,而不是date。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句