gpt4 book ai didi

c# - 如何向 DataGridRowGroupHeader 添加其他数据?

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:19 25 4
gpt4 key购买 nike

我有一个 DataGrid,它通过具有一个组定义的 PagedCollectionView 显示一些数据。我为相应的 DataGridRowGroupHeader 创建了一个 Style,在其下添加了一个 ControlTemplate,其中包含一个额外的 TextBlock 和一个间距矩形。我想将这些控件的宽度绑定(bind)到特定列的宽度,但我正在努力让它工作。我还想将 TextBlockText 属性绑定(bind)到一个值。

我尝试通过资源中 RectangleWidth 属性绑定(bind)宽度,但这没有用(可能是因为 Rectangle 是从未绘制,因此没有计算它的布局)。

不过,我相信两组绑定(bind)都可以通过使用一个或多个 ValueConverter 实现来执行,但我想知道是否有更好的方法。是否可以通过定义 ControlTemplate 来实现这些?

最佳答案

经过反复试验,我能够自定义行组标题。解锁解决方案的关键涉及 DataGrid 上的 RowGroupHeaderStyles 属性和 LoadingRowGroup 事件。

通过为组定义一种或多种样式,我能够自定义控件模板以包含额外的命名元素。然后,我使用该事件获得对这些元素的访问权限,并设置或绑定(bind)相关值以显示我需要的信息。我唯一的绊脚石与绑定(bind)控件的大小有关,我最终通过保存对每一行的引用并在需要刷新它们而不是依赖绑定(bind)时设置这些大小来解决这个问题。这可能特定于我的项目,因此您的情况可能会有所不同。

更新
JDM询问如何在 LoadingRowGroup 事件处理程序中获取控件以执行绑定(bind)等。您可以从事件参数的 DataGridRowGroupHeaderEventArgs.RowGroupHeader 属性获取行标题,然后使用 VisualTreeHelper获取页眉的子控件。获得控件后,您可以像绑定(bind)任何其他控件一样在代码中绑定(bind)到它们。

关于c# - 如何向 DataGridRowGroupHeader 添加其他数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492221/

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