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

时间:2009-12-07 21:40:25

标签: collections silverlight-3.0 datagrid paging grouping

我在Silverlight 3中使用PagedCollectionView对数据网格中的项目进行分组。我想检测单击组标题的时间,但是6小时后仍无法找到任何方法。

(因此,当点击折叠标题时,我可以动态加载组的内容)

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

PagedCollectionView集合= new PagedCollectionView(orgMembers); collection.GroupDescriptions.Add(new PropertyGroupDescription(“Generation”));

DataGrid1.ItemsSource = collection;

1 个答案:

答案 0 :(得分: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);
    }

处理datagrid上的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;
        }
    }

您可以获取有关被点击的群组及其项目集合(如上所示)

的信息