Silverlight 3 DataGrid 分组 - 检测组标题单击或标题展开/折叠

问题描述 投票:0回答:1

我正在 Silverlight 3 中使用 PagedCollectionView 对数据网格中的项目进行分组。 我想检测何时单击组标题,但 6 小时后仍然找不到任何方法来执行此操作。

(这样当单击折叠标题时我可以动态加载组的内容)

数据网格的填充方式如下:

PagedCollectionView 集合 = new PagedCollectionView(orgMembers); collection.GroupDescriptions.Add(new PropertyGroupDescription("生成"));

DataGrid1.ItemsSource = 集合;

collections pagination datagrid grouping silverlight-3.0
1个回答
4
投票

编写一个扩展方法来查找特定类型的父元素:

    public static T FindParentOfType<T>(this FrameworkElement element)
    {
        var parent = VisualTreeHelper.GetParent(element) as FrameworkElement;

        while (parent != null)
        {
            if (parent is T)
                return (T)(object)parent;

            parent = VisualTreeHelper.GetParent(parent) as FrameworkElement;
        }
        return default(T);
    }

处理数据网格上的 MouseLeftButtonUp 事件:

    private void PassportGrid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
    {

        DataGridRowGroupHeader rgh = (e.OriginalSource as FrameworkElement).FindParentOfType<DataGridRowGroupHeader>();
        if (rgh != null && rgh.DataContext is CollectionViewGroup)
        {
            var stuff = (rgh.DataContext as CollectionViewGroup);
            var items = stuff.Items;
        }
    }

您可以获得有关被单击的组及其项目集合的信息(如上所示)

© www.soinside.com 2019 - 2024. All rights reserved.