gpt4 book ai didi

WPF Datagrid,是否可以混合使用组和普通(非分组)行?

转载 作者:行者123 更新时间:2023-12-05 01:19:54 25 4
gpt4 key购买 nike

我正在使用 WPF Datagrid 并且需要显示 10,000 行,因此需要虚拟化。从 StackOverflow 上的几篇文章中,我看到虚拟化 + 分组对于 WPF Datagrid 是不可能的。这是因为渲染组的Expander模板无法虚拟化。

在我们的系统中,我们可能有 10,000 行,但每个组中只有 3 或 4 行。此外,绝大多数行未分组 - 它们的 GroupId 为空。在原型(prototype)中,我正在将这些渲染作为没有标题的组扩展器进行处理。我最理想的是那些不分组的,只是行,其余的在扩展器中呈现。这可能吗?

WPF Datagrid with Grouped and Ungrouped rows

最佳答案

试试这个...

<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Style.Resources>
<ControlTemplate x:Key="MultiItemGroupTemplate"
TargetType="{x:Type GroupItem}">
<Expander IsExpanded="False">
<Expander.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}" />
</StackPanel>
</Expander.Header>
<ItemsPresenter />
</Expander>
</ControlTemplate>
<ControlTemplate x:Key="SingleItemGroupTemplate"
TargetType="{x:Type GroupItem}">
<ItemsPresenter />
</ControlTemplate>
</Style.Resources>
<Style.Triggers>
<DataTrigger Binding="{Binding ItemCount}" Value="1">
<Setter Property="Template"
Value="{StaticResource SingleItemGroupTemplate}">
</Setter>
</DataTrigger>
</Style.Triggers>
<Setter Property="Template"
Value="{StaticResource MultiItemGroupTemplate}"/>
</Style>
</GroupStyle.ContainerStyle>

注意:请注意,对于 DataGrid 这会发生变化... DataGrid 的 ItemPresenter 实际上是 DataGridRowsPresenter

关于WPF Datagrid,是否可以混合使用组和普通(非分组)行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9210627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com