【发布时间】:2012-05-04 06:03:00
【问题描述】:
我需要使用数据网格,我的数据如下所示: 名字、姓氏、街道、邮编、城市、国家、图片
在我的数据网格中,我只会显示名字、姓氏和图像,但它必须按城市分组。
更新
下面的代码显示了分组项目,但我要显示的三个项目(名字、姓氏、图像)后面是每行的所有项目(名字、姓氏、街道、邮编、城市、国家、图像)。我想我必须更换 <ItemsPresenter /> 但这只是猜测..
任何人都可以帮助我,我无法自己解决这个问题......
<Grid>
<DataGrid ItemsSource="{Binding GroupedMovables}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Preview" Width="SizeToCells" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Name="Preview" Height="20" Source="{Binding Image}" HorizontalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="first name" Binding="{Binding FirstName}" />
<DataGridTextColumn Header="last name" Binding="{Binding LastName}" />
</DataGrid.Columns>
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=City}" FontWeight="Bold" Padding="3"/>
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander>
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}" />
<TextBlock Text="{Binding Path=ItemCount}" Margin="8,0,4,0"/>
<TextBlock Text="Element(s)"/>
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
</DataGrid>
</Grid>
【问题讨论】:
-
请详细说明:究竟是什么不工作?代码会产生错误吗?如果是这样,错误是什么?是否显示不正确?如果是这样,它现在如何显示,这与您想要的有什么不同?谢谢。
-
我更新了我的解释,希望现在更清楚。
-
如果你删除
<ItemsPresenter />会发生什么? -
请在下面查看我的答案并将其与您的代码进行比较。