数据网格分组显示您分组的字段值作为标头
本文关键字:字段 数据网 网格 显示 数据 | 更新日期: 2023-09-27 18:19:19
我正在尝试在DataGrid中分组项目并显示字段的值,它在标题中分组。例如:
Ford - 3项F150野马雪佛兰- 2件
我看过的每个例子都向我展示了完全相同的东西,似乎对我来说根本不起作用。
<DataGrid IsSynchronizedWithCurrentItem="True" SelectionUnit="FullRow" RowHeaderWidth="0" VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" IsReadOnly="True" ItemsSource="{Binding View}" SelectedItem="{Binding Path=SelectedContingency, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="False" >
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<DataGridRowsPresenter/>
</ItemsPanelTemplate>
</GroupStyle.Panel>
<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=" wtf " />
<TextBlock Text="{Binding Path=Description, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
<TextBlock Text="{Binding Path=ItemCount}"/>
<TextBlock Text=" Items" />
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
也有一段时间了,但没有什么区别
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=Description}" />
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
在这里我没有得到描述,而是得到(wtf 3项)等。我尝试过不同的领域,但一无所获。我已经尝试了所有的变化,我能想到的字段在扩展头。
需要什么魔法才能使这个共同特性发挥作用?
这个问题的答案是,在示例中它们绑定到字段名。所以当你在例子中看到:
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name"} />
<TextBlock Text="{Binding Path=ItemCount}"/>
<TextBlock Text=" Items" />
</StackPanel>
</Expander.Header>
您可能会像我一样假设使用了"Name",因为这也是他们选择绑定的字段。事实并非如此。"Name"是您绑定到的具有该值的GroupItem上的实际属性。
所以无论你在哪个字段上分组,你总是通过绑定到GroupItem上的"Name"来显示该字段。