【发布时间】:2011-03-11 14:24:51
【问题描述】:
我在我的数据网格上重新设置了 DataGridRowGroupHeader 的样式,因为我想更改它显示的文本。 我想要的是它总结它在其组中保存的数据。 (具体来说,代码应该能够检查集合中的所有项目以找到日期最早的项目)。
我在尝试访问集合中的项目时遇到了问题。 我尝试在 RowGroupHeader 中使用转换器来呈现文本 - 但集合总是返回为空。
<sdk:DataGrid.RowGroupHeaderStyles>
<Style TargetType="sdk:DataGridRowGroupHeader">
<Setter Property="Template">
<!-- All the other spield from the default template, leading to below where the header text is rendered -->
<StackPanel Grid.Column="3" Grid.Row="1" Orientation="Horizontal" VerticalAlignment="Center" Margin="0,1,0,1">
<TextBlock x:Name="PropertyNameElement" Margin="4,0,0,0"/>
<TextBlock Margin="4,0,0,0" Text="{Binding Name}" />
<TextBlock x:Name="ItemCountElement" Margin="4,0,0,0" Visibility="{TemplateBinding ItemCountVisibility}"/>
<TextBlock x:Name="oldest" Margin="4,0,0,0" Text="{Binding Converter={StaticResource myConverter}, ConverterParameter=Orders}" />
</StackPanel>
我的转换器看起来像:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
CollectionViewGroup cvg = value as CollectionViewGroup;
if (cvg.Items.Count==0)
return "Test Fails";
else
return FindOldestObjectInCollection(cvg.Items);
}
上面的 CollectionViewGroup 总是空的——我被引导相信它应该包含组中的所有项目。 (创建为 PagedCollectionView 的组)。 有什么想法我哪里出错了吗?
【问题讨论】:
标签: c# silverlight datagrid